
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: Elf_Addr get_address(Output_reloc<9,_true,_64,_true> * this) */

Elf_Addr __thiscall
gold::Output_reloc<9,_true,_64,_true>::get_address(Output_reloc<9,_true,_64,_true> *this)

{
  uint extraout_v1;
  uint uVar1;
  Sized_relobj<64,_true> *pSVar2;
  uint uVar3;
  Output_reloc<9,_true,_64,_true> *this_00;
  uint uVar4;
  undefined4 uVar5;
  pointer puVar6;
  int iVar7;
  Elf_Addr *pEVar8;
  pointer ppOVar9;
  undefined4 in_a3;
  int iVar10;
  int iVar11;
  Output_section *pOVar12;
  _func_int_varargs *p_Var13;
  undefined *puVar14;
  code *pcVar15;
  Elf_Addr EVar16;
  
  uVar4 = this->shndx_;
  uVar1 = (uint)this->address_;
  iVar11 = *(int *)&this->address_;
  pSVar2 = (this->u2_).relobj;
  if (uVar4 == 0xfffffffc) {
LAB_0025e4d8:
    if (pSVar2 == (Sized_relobj<64,_true> *)0x0) {
      return CONCAT44(iVar11,uVar1);
    }
    if (*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0) {
      uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;
      return CONCAT44((uint)(uVar4 < uVar1) +
                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);
    }
LAB_0025e584:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
               PTR_s_in_a_linker_script_004c191c + -0x2a40);
  }
  else {
    p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18];
    if (p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24) {
      ppOVar9 = (pSVar2->super_Relobj).output_sections_.
                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                _M_impl._M_start;
      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.
                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;
      pOVar12 = ppOVar9[uVar4];
    }
    else {
      pOVar12 = (Output_section *)(*p_Var13)();
    }
    uVar5 = 0x442;
    if (pOVar12 == (Output_section *)0x0) {
LAB_0025e4c4:
      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);
      uVar1 = extraout_v1;
      goto LAB_0025e4d8;
    }
    pSVar2 = (this->u2_).relobj;
    puVar6 = (pSVar2->section_offsets_).
             super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>.
             _M_impl._M_start;
    if (this->shndx_ <
        (uint)((int)(pSVar2->section_offsets_).
                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>
                    ._M_impl._M_finish - (int)puVar6 >> 3)) {
      puVar6 = puVar6 + this->shndx_;
      iVar7 = *(int *)puVar6;
      iVar10 = (int)*puVar6;
      if ((iVar7 == -1) && (iVar10 == -1)) {
        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];
        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||
           (iVar7 = (*p_Var13)(), iVar7 == 0)) {
          uVar5 = 0x44a;
        }
        else {
          EVar16 = (*(code *)PTR_output_address_004c3cac)
                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);
          if ((int)(EVar16 >> 0x20) != -1) {
            return EVar16;
          }
          uVar5 = 0x44c;
          iVar11 = -1;
          if ((int)EVar16 != -1) {
            return EVar16;
          }
        }
        goto LAB_0025e4c4;
      }
      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {
        uVar3 = uVar1 + iVar10;
        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;
        return CONCAT44((uint)(uVar4 < uVar3) +
                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +
                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);
      }
      goto LAB_0025e584;
    }
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,
             PTR_s_in_a_linker_script_004c191c + -0x38d8);
LAB_0025e5bc:
  pEVar8 = (Elf_Addr *)&DAT_000005c8;
  this_00 = (Output_reloc<9,_true,_64,_true> *)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);
  puVar14 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);
  EVar16 = get_address(this_00);
  pcVar15 = *(code **)(puVar14 + 0x263910);
  *pEVar8 = EVar16;
  uVar5 = (*pcVar15)(this_00);
  uVar1 = *(uint *)&this_00->field_0x14 >> 4;
  *(undefined4 *)(pEVar8 + 1) = uVar5;
  *(uint *)((int)pEVar8 + 0xc) = uVar1;
  return CONCAT44(uVar5,uVar1);
}



/* gold::Output_reloc<9, true, 64, true>::get_address() const */

int __thiscall gold::Output_reloc<9,true,64,true>::get_address(Output_reloc<9,true,64,true> *this)

{
  int *piVar1;
  uint uVar2;
  uint extraout_v1;
  int *piVar3;
  Output_reloc<9,true,64,true> *this_00;
  uint uVar4;
  undefined4 uVar5;
  int iVar6;
  undefined8 *puVar7;
  undefined4 in_a3;
  int iVar8;
  int iVar9;
  int iVar10;
  undefined *puVar11;
  code *pcVar12;
  undefined8 uVar13;
  
  uVar4 = *(uint *)(this + 0x18);
  uVar2 = *(uint *)(this + 0xc);
  iVar9 = *(int *)(this + 8);
  piVar3 = *(int **)(this + 4);
  if (uVar4 == 0xfffffffc) {
LAB_0025e4d8:
    if (piVar3 == (int *)0x0) {
      return iVar9;
    }
    if (piVar3[8] < 0) {
      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];
    }
LAB_0025e584:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
               PTR_s_in_a_linker_script_004c191c + -0x2a40);
  }
  else {
    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {
      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;
      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);
    }
    else {
      iVar10 = (**(code **)(*piVar3 + 0x60))();
    }
    uVar5 = 0x442;
    if (iVar10 == 0) {
LAB_0025e4c4:
      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);
      uVar2 = extraout_v1;
      goto LAB_0025e4d8;
    }
    piVar3 = *(int **)(this + 4);
    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {
      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);
      iVar6 = *piVar1;
      iVar8 = piVar1[1];
      if ((iVar6 == -1) && (iVar8 == -1)) {
        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||
           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {
          uVar5 = 0x44a;
        }
        else {
          uVar13 = (*(code *)PTR_output_address_004c3cac)
                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);
          iVar9 = (int)((ulonglong)uVar13 >> 0x20);
          if (iVar9 != -1) {
            return iVar9;
          }
          uVar5 = 0x44c;
          iVar9 = -1;
          if ((int)uVar13 != -1) {
            return -1;
          }
        }
        goto LAB_0025e4c4;
      }
      if (*(int *)(iVar10 + 0x20) < 0) {
        uVar4 = uVar2 + iVar8;
        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +
               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);
      }
      goto LAB_0025e584;
    }
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,
             PTR_s_in_a_linker_script_004c191c + -0x38d8);
LAB_0025e5bc:
  puVar7 = (undefined8 *)&DAT_000005c8;
  this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);
  puVar11 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);
  uVar13 = get_address(this_00);
  pcVar12 = *(code **)(puVar11 + 0x263910);
  *puVar7 = uVar13;
  iVar9 = (*pcVar12)(this_00);
  uVar2 = *(uint *)(this_00 + 0x14);
  *(int *)(puVar7 + 1) = iVar9;
  *(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;
  return iVar9;
}


lui gp,0x27
addiu gp,gp,-0x5158
addu gp,gp,t9
addiu sp,sp,-0x40
lw a1,0x18(a0)
li v0,-0x4
lw v1,0xc(a0)
sw gp,0x18(sp)
sw s2,0x34(sp)
sw s0,0x2c(sp)
or s0,a0,zero
sw ra,0x3c(sp)
sw s3,0x38(sp)
sw s1,0x30(sp)
lw s2,0x8(a0)
beq a1,v0,0x0025e4d8
_lw a0,0x4(a0)
lw a2,0x0(a0)
lw v0,-0x771c(gp)
lw t9,0x60(a2)
bne t9,v0,0x0025e520
_nop
lw a2,0x38(a0)
lw v0,0x3c(a0)
subu v0,v0,a2
sra v0,v0,0x2
sltu v0,a1,v0
beq v0,zero,0x0025e5bc
_sll a1,a1,0x2
addu a1,a2,a1
lw s3,0x0(a1)
beq s3,zero,0x0025e4c0
_li a1,0x442
lw a0,0x4(s0)
lw a2,0x18(s0)
lw a1,0x84(a0)
lw v0,0x88(a0)
subu v0,v0,a1
sra v0,v0,0x3
sltu v0,a2,v0
beq v0,zero,0x0025e5a0
_sll v0,a2,0x3
li a2,-0x1
addu v0,a1,v0
lw a1,0x0(v0)
beq a1,a2,0x0025e4a4
_lw s1,0x4(v0)
lw v0,0x20(s3)
bgez v0,0x0025e584
_addu s2,s2,a1
addu a0,v1,s1
lw v0,0xc(s3)
lw a1,0x8(s3)
sltu v1,a0,v1
addu s2,v1,s2
addu v1,a0,v0
addu s2,s2,a1
sltu a0,v1,a0
addu s2,a0,s2
lw ra,0x3c(sp)
or v0,s2,zero
lw s3,0x38(sp)
lw s2,0x34(sp)
lw s1,0x30(sp)
lw s0,0x2c(sp)
jr ra
_addiu sp,sp,0x40
bne s1,a1,0x0025e454
_lw v0,-0x519c(gp)
lw a1,0x0(a0)
lw t9,0xec(a1)
bne t9,v0,0x0025e538
_nop
li a1,0x44a
lw a2,-0x7924(gp)
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3e08
jalr t9
_addiu a0,a0,-0x48b4
beq a0,zero,0x0025e488
_lw ra,0x3c(sp)
lw v0,0x20(a0)
bgez v0,0x0025e584
_lw s3,0x38(sp)
lw v0,0xc(a0)
lw a0,0x8(a0)
addu v0,v1,v0
addu a0,s2,a0
lw s1,0x30(sp)
sltu v1,v0,v1
lw s0,0x2c(sp)
addu s2,v1,a0
or v1,v0,zero
or v0,s2,zero
lw s2,0x34(sp)
jr ra
_addiu sp,sp,0x40
jalr t9
_sw v1,0x20(sp)
lw gp,0x18(sp)
or s3,v0,zero
b 0x0025e414
_lw v1,0x20(sp)
jalr t9
_sw v1,0x20(sp)
lw gp,0x18(sp)
beq v0,zero,0x0025e4bc
_or a1,v0,zero
lw v1,0x20(sp)
or a0,s3,zero
lw a2,0x18(s0)
lw t9,-0x5594(gp)
sw s2,0x10(sp)
jalr t9
_sw v1,0x14(sp)
or s2,v0,zero
bne s2,s1,0x0025e484
_lw gp,0x18(sp)
bne v1,s2,0x0025e484
_li a1,0x44c
b 0x0025e4c4
_lw a2,-0x7924(gp)
lw a2,-0x7924(gp)
li a1,0xc5
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2a40
jalr t9
_addiu a0,a0,0x3574
lw a2,-0x7924(gp)
li a1,0x7f7
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x38d8
jalr t9
_addiu a0,a0,0x4570
lw a2,-0x7924(gp)
li a1,0x5c8
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x3404
jalr t9
_addiu a0,a0,0x4570
(translation_unit "/* gold::Output_reloc<9, true, 64, true>::get_address() const */\n\nint __thiscall gold::Output_reloc<9,true,64,true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int *piVar1;\n  uint uVar2;\n  uint extraout_v1;\n  int *piVar3;\n  Output_reloc<9,true,64,true> *this_00;\n  uint uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  undefined4 in_a3;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined8 uVar13;\n  \n  uVar4 = *(uint *)(this + 0x18);\n  uVar2 = *(uint *)(this + 0xc);\n  iVar9 = *(int *)(this + 8);\n  piVar3 = *(int **)(this + 4);\n  if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);\nLAB_0025e5bc:\n  puVar7 = (undefined8 *)&DAT_000005c8;\n  this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n  puVar11 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);\n  uVar13 = get_address(this_00);\n  pcVar12 = *(code **)(puVar11 + 0x263910);\n  *puVar7 = uVar13;\n  iVar9 = (*pcVar12)(this_00);\n  uVar2 = *(uint *)(this_00 + 0x14);\n  *(int *)(puVar7 + 1) = iVar9;\n  *(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;\n  return iVar9;\n}\n\n" comment (declaration "int __thiscall gold::Output_reloc<9,true,64,true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int *piVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<9" < number_literal) , identifier (ERROR ",64" , number_literal) , (ERROR "true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int" identifier > : : (function_declarator "get_address(Output_reloc<9,true,64,true> *this)" identifier (parameter_list "(Output_reloc<9,true,64,true> *this)" ( (parameter_declaration "Output_reloc" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "true" type_identifier) (ERROR ",64" , number_literal) , (parameter_declaration "true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (expression_statement "Output_reloc<9,true,64,true> *this_00;" (update_expression "Output_reloc<9,true,64,true> *this_00" (binary_expression "Output_reloc<9,true,64,true> *this_00" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (expression_statement "uVar4 = *(uint *)(this + 0x18);" (assignment_expression "uVar4 = *(uint *)(this + 0x18)" identifier = (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(this + 0xc);" (assignment_expression "uVar2 = *(uint *)(this + 0xc)" identifier = (pointer_expression "*(uint *)(this + 0xc)" * (cast_expression "(uint *)(this + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(this + 8);" (assignment_expression "iVar9 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = *(int **)(this + 4);" (assignment_expression "piVar3 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" if (parenthesized_expression "(uVar4 == 0xfffffffc)" ( (binary_expression "uVar4 == 0xfffffffc" identifier == number_literal) )) (compound_statement "{\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }" { (labeled_statement "LAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }" statement_identifier : (if_statement "if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return iVar9;\n    }" { (return_statement "return iVar9;" return identifier ;) }))) (if_statement "if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }" if (parenthesized_expression "(piVar3[8] < 0)" ( (binary_expression "piVar3[8] < 0" (subscript_expression "piVar3[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }" { (return_statement "return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];" return (binary_expression "(uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2]" (binary_expression "(uint)(uVar2 + piVar3[3] < uVar2) + iVar9" (call_expression "(uint)(uVar2 + piVar3[3] < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 + piVar3[3] < uVar2)" ( (binary_expression "uVar2 + piVar3[3] < uVar2" (binary_expression "uVar2 + piVar3[3]" identifier + (subscript_expression "piVar3[3]" identifier [ number_literal ])) < identifier) ))) + identifier) + (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) })) (labeled_statement "LAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" else (compound_statement "{\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" { (if_statement "if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" if (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24)" ( (binary_expression "*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24" (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_do_output_section_004c1b24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }" { (if_statement "if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;" if (parenthesized_expression "((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4)" ( (binary_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4" (call_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0xf] - piVar3[0xe] >> 2)" ( (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar3[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0025e5bc;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);" (assignment_expression "iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0xe] + uVar4 * 4)" * (cast_expression "(int *)(piVar3[0xe] + uVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0xe] + uVar4 * 4)" ( (binary_expression "piVar3[0xe] + uVar4 * 4" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) + (binary_expression "uVar4 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" else (compound_statement "{\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" { (expression_statement "iVar10 = (**(code **)(*piVar3 + 0x60))();" (assignment_expression "iVar10 = (**(code **)(*piVar3 + 0x60))()" identifier = (call_expression "(**(code **)(*piVar3 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" ( (pointer_expression "**(code **)(*piVar3 + 0x60)" * (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" identifier = number_literal) ;) (if_statement "if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" { (labeled_statement "LAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" statement_identifier : (expression_statement "piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" (assignment_expression "piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" identifier = (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + -0x48b4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) )))) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" ( identifier , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3e08" identifier + number_literal) ))) ;) (expression_statement "uVar2 = extraout_v1;" (assignment_expression "uVar2 = extraout_v1" identifier = identifier) ;) (goto_statement "goto LAB_0025e4d8;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(this + 4);" (assignment_expression "piVar3 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }" if (parenthesized_expression "(*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3))" ( (binary_expression "*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)" (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) < (call_expression "(uint)(piVar3[0x22] - piVar3[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x22] - piVar3[0x21] >> 3)" ( (binary_expression "piVar3[0x22] - piVar3[0x21] >> 3" (binary_expression "piVar3[0x22] - piVar3[0x21]" (subscript_expression "piVar3[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }" { (expression_statement "piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);" (assignment_expression "piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" identifier = (cast_expression "(int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" ( (binary_expression "piVar3[0x21] + *(uint *)(this + 0x18) * 8" (subscript_expression "piVar3[0x21]" identifier [ number_literal ]) + (binary_expression "*(uint *)(this + 0x18) * 8" (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar8 = piVar1[1];" (assignment_expression "iVar8 = piVar1[1]" identifier = (subscript_expression "piVar1[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" if (parenthesized_expression "((iVar6 == -1) && (iVar8 == -1))" ( (binary_expression "(iVar6 == -1) && (iVar8 == -1)" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" { (if_statement "if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" if (parenthesized_expression "((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0))" ( (binary_expression "(*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)" (parenthesized_expression "(*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4)" ( (binary_expression "*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4" (pointer_expression "*(code **)(*piVar3 + 0xec)" * (cast_expression "(code **)(*piVar3 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xec)" ( (binary_expression "*piVar3 + 0xec" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_sized_relobj_004c40a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)" ( (comma_expression "iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0" (assignment_expression "iVar6 = (**(code **)(*piVar3 + 0xec))()" identifier = (call_expression "(**(code **)(*piVar3 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar3 + 0xec))" ( (pointer_expression "**(code **)(*piVar3 + 0xec)" * (pointer_expression "*(code **)(*piVar3 + 0xec)" * (cast_expression "(code **)(*piVar3 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xec)" ( (binary_expression "*piVar3 + 0xec" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 0x44a;\n        }" { (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" identifier = number_literal) ;) }) (else_clause "else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" else (compound_statement "{\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" { (expression_statement "uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);" (assignment_expression "uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" identifier = (call_expression "(*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" (parenthesized_expression "(*(code *)PTR_output_address_004c3cac)" ( (pointer_expression "*(code *)PTR_output_address_004c3cac" * (cast_expression "(code *)PTR_output_address_004c3cac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = (int)((ulonglong)uVar13 >> 0x20);" (assignment_expression "iVar9 = (int)((ulonglong)uVar13 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar13 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar13 >> 0x20)" ( (binary_expression "(ulonglong)uVar13 >> 0x20" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (iVar9 != -1) {\n            return iVar9;\n          }" if (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) (compound_statement "{\n            return iVar9;\n          }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" identifier = number_literal) ;) (expression_statement "iVar9 = -1;" (assignment_expression "iVar9 = -1" identifier = number_literal) ;) (if_statement "if ((int)uVar13 != -1) {\n            return -1;\n          }" if (parenthesized_expression "((int)uVar13 != -1)" ( (binary_expression "(int)uVar13 != -1" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n            return -1;\n          }" { (return_statement "return -1;" return number_literal ;) })) }))) (goto_statement "goto LAB_0025e4c4;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }" if (parenthesized_expression "(*(int *)(iVar10 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar10 + 0x20) < 0" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }" { (expression_statement "uVar4 = uVar2 + iVar8;" (assignment_expression "uVar4 = uVar2 + iVar8" identifier = (binary_expression "uVar2 + iVar8" identifier + identifier)) ;) (return_statement "return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);" return (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8)" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2)" (call_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 + *(int *)(iVar10 + 0xc) < uVar4)" ( (binary_expression "uVar4 + *(int *)(iVar10 + 0xc) < uVar4" (binary_expression "uVar4 + *(int *)(iVar10 + 0xc)" identifier + (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) < identifier) ))) + (call_expression "(uint)(uVar4 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar2)" ( (binary_expression "uVar4 < uVar2" identifier < identifier) )))) + identifier) + identifier) + (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) })) (goto_statement "goto LAB_0025e584;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x38d8" identifier + number_literal) ))) ;) (labeled_statement "LAB_0025e5bc:\n  puVar7 = (undefined8 *)&DAT_000005c8;" statement_identifier : (expression_statement "puVar7 = (undefined8 *)&DAT_000005c8;" (assignment_expression "puVar7 = (undefined8 *)&DAT_000005c8" identifier = (cast_expression "(undefined8 *)&DAT_000005c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) )))) ;) (expression_statement "puVar11 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar11 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" identifier + number_literal) ))) ;) (expression_statement "uVar13 = get_address(this_00);" (assignment_expression "uVar13 = get_address(this_00)" identifier = (call_expression "get_address(this_00)" identifier (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x263910);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x263910)" identifier = (pointer_expression "*(code **)(puVar11 + 0x263910)" * (cast_expression "(code **)(puVar11 + 0x263910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x263910)" ( (binary_expression "puVar11 + 0x263910" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar9 = (*pcVar12)(this_00);" (assignment_expression "iVar9 = (*pcVar12)(this_00)" identifier = (call_expression "(*pcVar12)(this_00)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "uVar2 = *(uint *)(this_00 + 0x14);" (assignment_expression "uVar2 = *(uint *)(this_00 + 0x14)" identifier = (pointer_expression "*(uint *)(this_00 + 0x14)" * (cast_expression "(uint *)(this_00 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x14)" ( (binary_expression "this_00 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar7 + 1) = iVar9;" (assignment_expression "*(int *)(puVar7 + 1) = iVar9" (pointer_expression "*(int *)(puVar7 + 1)" * (cast_expression "(int *)(puVar7 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;" (assignment_expression "*(uint *)((int)puVar7 + 0xc) = uVar2 >> 4" (pointer_expression "*(uint *)((int)puVar7 + 0xc)" * (cast_expression "(uint *)((int)puVar7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xc)" ( (binary_expression "(int)puVar7 + 0xc" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 >> 4" identifier >> number_literal)) ;) (return_statement "return iVar9;" return identifier ;) (ERROR "}" }))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* DWARF original prototype: Elf_Addr get_address(Output_reloc<9,_true,_64,_true> * this) */\n\nElf_Addr __thiscall\ngold::Output_reloc<9,_true,_64,_true>::get_address(Output_reloc<9,_true,_64,_true> *this)\n\n{\n  uint extraout_v1;\n  uint uVar1;\n  Sized_relobj<64,_true> *pSVar2;\n  uint uVar3;\n  Output_reloc<9,_true,_64,_true> *this_00;\n  uint uVar4;\n  undefined4 uVar5;\n  pointer puVar6;\n  int iVar7;\n  Elf_Addr *pEVar8;\n  pointer ppOVar9;\n  undefined4 in_a3;\n  int iVar10;\n  int iVar11;\n  Output_section *pOVar12;\n  _func_int_varargs *p_Var13;\n  undefined *puVar14;\n  code *pcVar15;\n  Elf_Addr EVar16;\n  \n  uVar4 = this->shndx_;\n  uVar1 = (uint)this->address_;\n  iVar11 = *(int *)&this->address_;\n  pSVar2 = (this->u2_).relobj;\n  if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (pSVar2 == (Sized_relobj<64,_true> *)0x0) {\n      return CONCAT44(iVar11,uVar1);\n    }\n    if (*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0) {\n      uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;\n      return CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18];\n    if (p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24) {\n      ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;\n      pOVar12 = ppOVar9[uVar4];\n    }\n    else {\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }\n    uVar5 = 0x442;\n    if (pOVar12 == (Output_section *)0x0) {\nLAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar1 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    pSVar2 = (this->u2_).relobj;\n    puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>.\n             _M_impl._M_start;\n    if (this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)) {\n      puVar6 = puVar6 + this->shndx_;\n      iVar7 = *(int *)puVar6;\n      iVar10 = (int)*puVar6;\n      if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }\n      goto LAB_0025e584;\n    }\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);\nLAB_0025e5bc:\n  pEVar8 = (Elf_Addr *)&DAT_000005c8;\n  this_00 = (Output_reloc<9,_true,_64,_true> *)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n  puVar14 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);\n  EVar16 = get_address(this_00);\n  pcVar15 = *(code **)(puVar14 + 0x263910);\n  *pEVar8 = EVar16;\n  uVar5 = (*pcVar15)(this_00);\n  uVar1 = *(uint *)&this_00->field_0x14 >> 4;\n  *(undefined4 *)(pEVar8 + 1) = uVar5;\n  *(uint *)((int)pEVar8 + 0xc) = uVar1;\n  return CONCAT44(uVar5,uVar1);\n}\n\n" comment comment comment (declaration "Elf_Addr __thiscall\ngold::Output_reloc<9,_true,_64,_true>::get_address(Output_reloc<9,_true,_64,_true> *this)\n\n{\n  uint extraout_v1;" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<9" < number_literal) , identifier , identifier , (ERROR "_true>::get_address(Output_reloc<9,_true,_64,_true> *this)\n\n{\n  uint" identifier > : : (function_declarator "get_address(Output_reloc<9,_true,_64,_true> *this)" identifier (parameter_list "(Output_reloc<9,_true,_64,_true> *this)" ( (parameter_declaration "Output_reloc" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "_true" type_identifier) , (parameter_declaration "_64" type_identifier) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) ))) { identifier) identifier ;) (declaration "uint uVar1;" type_identifier identifier ;) (expression_statement "Sized_relobj<64,_true> *pSVar2;" (update_expression "Sized_relobj<64,_true> *pSVar2" (binary_expression "Sized_relobj<64,_true> *pSVar2" (binary_expression "Sized_relobj<64" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*pSVar2" * identifier)) --) ;) (declaration "uint uVar3;" type_identifier identifier ;) (expression_statement "Output_reloc<9,_true,_64,_true> *this_00;" (update_expression "Output_reloc<9,_true,_64,_true> *this_00" (binary_expression "Output_reloc<9,_true,_64,_true> *this_00" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",_true,_64,_true" , identifier , identifier , identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "pointer puVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "Elf_Addr *pEVar8;" type_identifier (pointer_declarator "*pEVar8" * identifier) ;) (declaration "pointer ppOVar9;" type_identifier identifier ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "Output_section *pOVar12;" type_identifier (pointer_declarator "*pOVar12" * identifier) ;) (declaration "_func_int_varargs *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "Elf_Addr EVar16;" type_identifier identifier ;) (expression_statement "uVar4 = this->shndx_;" (assignment_expression "uVar4 = this->shndx_" identifier = (field_expression "this->shndx_" identifier -> field_identifier)) ;) (expression_statement "uVar1 = (uint)this->address_;" (assignment_expression "uVar1 = (uint)this->address_" identifier = (cast_expression "(uint)this->address_" ( (type_descriptor "uint" type_identifier) ) (field_expression "this->address_" identifier -> field_identifier))) ;) (expression_statement "iVar11 = *(int *)&this->address_;" (assignment_expression "iVar11 = *(int *)&this->address_" identifier = (pointer_expression "*(int *)&this->address_" * (cast_expression "(int *)&this->address_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->address_" & (field_expression "this->address_" identifier -> field_identifier))))) ;) (expression_statement "pSVar2 = (this->u2_).relobj;" (assignment_expression "pSVar2 = (this->u2_).relobj" identifier = (field_expression "(this->u2_).relobj" (parenthesized_expression "(this->u2_)" ( (field_expression "this->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (pSVar2 == (Sized_relobj<64,_true> *)0x0) {\n      return CONCAT44(iVar11,uVar1);\n    }\n    if (*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0) {\n      uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;\n      return CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18];\n    if (p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24) {\n      ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;\n      pOVar12 = ppOVar9[uVar4];\n    }\n    else {\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }\n    uVar5 = 0x442;\n    if (pOVar12 == (Output_section *)0x0) {\nLAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar1 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    pSVar2 = (this->u2_).relobj;\n    puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>.\n             _M_impl._M_start;\n    if (this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)) {\n      puVar6 = puVar6 + this->shndx_;\n      iVar7 = *(int *)puVar6;\n      iVar10 = (int)*puVar6;\n      if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }\n      goto LAB_0025e584;\n    }\n  }" if (parenthesized_expression "(uVar4 == 0xfffffffc)" ( (binary_expression "uVar4 == 0xfffffffc" identifier == number_literal) )) (compound_statement "{\nLAB_0025e4d8:\n    if (pSVar2 == (Sized_relobj<64,_true> *)0x0) {\n      return CONCAT44(iVar11,uVar1);\n    }\n    if (*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0) {\n      uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;\n      return CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }" { (labeled_statement "LAB_0025e4d8:\n    if (pSVar2 == (Sized_relobj<64,_true> *)0x0) {\n      return CONCAT44(iVar11,uVar1);\n    }" statement_identifier : (if_statement "if (pSVar2 == (Sized_relobj<64,_true> *)0x0) {\n      return CONCAT44(iVar11,uVar1);\n    }" if (parenthesized_expression "(pSVar2 == (Sized_relobj<64,_true> *)0x0)" ( (binary_expression "pSVar2 == (Sized_relobj<64,_true> *)0x0)" identifier == (parenthesized_expression "(Sized_relobj<64,_true> *)0x0)" ( (comma_expression "Sized_relobj<64,_true> *)0x0" (binary_expression "Sized_relobj<64" identifier < number_literal) , (binary_expression "_true> *)0x0" identifier > (pointer_expression "*)0x0" * (ERROR ")" )) number_literal))) ))) )) (compound_statement "{\n      return CONCAT44(iVar11,uVar1);\n    }" { (return_statement "return CONCAT44(iVar11,uVar1);" return (call_expression "CONCAT44(iVar11,uVar1)" identifier (argument_list "(iVar11,uVar1)" ( identifier , identifier ))) ;) }))) (if_statement "if (*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0) {\n      uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;\n      return CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);\n    }" if (parenthesized_expression "(*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0)" ( (binary_expression "*(int *)&(pSVar2->super_Relobj).super_Object.offset_ < 0" (pointer_expression "*(int *)&(pSVar2->super_Relobj).super_Object.offset_" * (cast_expression "(int *)&(pSVar2->super_Relobj).super_Object.offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pSVar2->super_Relobj).super_Object.offset_" & (field_expression "(pSVar2->super_Relobj).super_Object.offset_" (field_expression "(pSVar2->super_Relobj).super_Object" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)))) < number_literal) )) (compound_statement "{\n      uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;\n      return CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);\n    }" { (expression_statement "uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity;" (assignment_expression "uVar4 = uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity" identifier = (binary_expression "uVar1 + (pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity" identifier + (field_expression "(pSVar2->super_Relobj).super_Object.name_.field_2._M_allocated_capacity" (field_expression "(pSVar2->super_Relobj).super_Object.name_.field_2" (field_expression "(pSVar2->super_Relobj).super_Object.name_" (field_expression "(pSVar2->super_Relobj).super_Object" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) ;) (return_statement "return CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4);" return (call_expression "CONCAT44((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4)" identifier (argument_list "((uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length,uVar4)" ( (binary_expression "(uint)(uVar4 < uVar1) +\n                      iVar11 + (pSVar2->super_Relobj).super_Object.name_._M_string_length" (binary_expression "(uint)(uVar4 < uVar1) +\n                      iVar11" (call_expression "(uint)(uVar4 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar1)" ( (binary_expression "uVar4 < uVar1" identifier < identifier) ))) + identifier) + (field_expression "(pSVar2->super_Relobj).super_Object.name_._M_string_length" (field_expression "(pSVar2->super_Relobj).super_Object.name_" (field_expression "(pSVar2->super_Relobj).super_Object" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) , identifier ))) ;) })) (labeled_statement "LAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18];\n    if (p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24) {\n      ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;\n      pOVar12 = ppOVar9[uVar4];\n    }\n    else {\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }\n    uVar5 = 0x442;\n    if (pOVar12 == (Output_section *)0x0) {\nLAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar1 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    pSVar2 = (this->u2_).relobj;\n    puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>.\n             _M_impl._M_start;\n    if (this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)) {\n      puVar6 = puVar6 + this->shndx_;\n      iVar7 = *(int *)puVar6;\n      iVar10 = (int)*puVar6;\n      if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }\n      goto LAB_0025e584;\n    }\n  }" else (compound_statement "{\n    p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18];\n    if (p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24) {\n      ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;\n      pOVar12 = ppOVar9[uVar4];\n    }\n    else {\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }\n    uVar5 = 0x442;\n    if (pOVar12 == (Output_section *)0x0) {\nLAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar1 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    pSVar2 = (this->u2_).relobj;\n    puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>.\n             _M_impl._M_start;\n    if (this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)) {\n      puVar6 = puVar6 + this->shndx_;\n      iVar7 = *(int *)puVar6;\n      iVar10 = (int)*puVar6;\n      if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }\n      goto LAB_0025e584;\n    }\n  }" { (expression_statement "p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18];" (assignment_expression "p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x18]" identifier = (subscript_expression "(pSVar2->super_Relobj).super_Object._vptr_Object[0x18]" (field_expression "(pSVar2->super_Relobj).super_Object._vptr_Object" (field_expression "(pSVar2->super_Relobj).super_Object" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24) {\n      ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;\n      pOVar12 = ppOVar9[uVar4];\n    }\n    else {\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }" if (parenthesized_expression "(p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24)" ( (binary_expression "p_Var13 == (_func_int_varargs *)PTR_do_output_section_004c1b24" identifier == (cast_expression "(_func_int_varargs *)PTR_do_output_section_004c1b24" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;\n      if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;\n      pOVar12 = ppOVar9[uVar4];\n    }" { (expression_statement "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start;" (field_expression "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl._M_start" (field_expression "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                _M_impl" (binary_expression "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar9 = (pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold" identifier = (binary_expression "(pSVar2->super_Relobj).output_sections_.\n                super__Vector_base<gold" (field_expression "(pSVar2->super_Relobj).output_sections_.\n                super__Vector_base" (field_expression "(pSVar2->super_Relobj).output_sections_" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4) goto LAB_0025e5bc;" if (parenthesized_expression "((uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4)" ( (binary_expression "(uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2) <= uVar4" (call_expression "(uint)((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2)" ( (binary_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9 >> 2" (binary_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish - (int)ppOVar9" (field_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl._M_finish" (field_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      ._M_impl" (binary_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base<gold" (cast_expression "(int)(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pSVar2->super_Relobj).output_sections_.\n                      super__Vector_base" (field_expression "(pSVar2->super_Relobj).output_sections_" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0025e5bc;" goto statement_identifier ;)) (expression_statement "pOVar12 = ppOVar9[uVar4];" (assignment_expression "pOVar12 = ppOVar9[uVar4]" identifier = (subscript_expression "ppOVar9[uVar4]" identifier [ identifier ])) ;) }) (else_clause "else {\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }" else (compound_statement "{\n      pOVar12 = (Output_section *)(*p_Var13)();\n    }" { (expression_statement "pOVar12 = (Output_section *)(*p_Var13)();" (assignment_expression "pOVar12 = (Output_section *)(*p_Var13)()" identifier = (cast_expression "(Output_section *)(*p_Var13)()" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var13)()" (parenthesized_expression "(*p_Var13)" ( (pointer_expression "*p_Var13" * identifier) )) (argument_list "()" ( ))))) ;) }))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" identifier = number_literal) ;) (if_statement "if (pOVar12 == (Output_section *)0x0) {\nLAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar1 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" if (parenthesized_expression "(pOVar12 == (Output_section *)0x0)" ( (binary_expression "pOVar12 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar1 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" { (labeled_statement "LAB_0025e4c4:\n      pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" statement_identifier : (expression_statement "pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" (assignment_expression "pSVar2 = (Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" identifier = (call_expression "(Sized_relobj<64,_true> *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" (parenthesized_expression "(Sized_relobj<64,_true> *)" ( (comma_expression "Sized_relobj<64,_true> *" (binary_expression "Sized_relobj<64" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + -0x48b4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) )))) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pSVar2,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" ( identifier , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3e08" identifier + number_literal) ))) ;) (expression_statement "uVar1 = extraout_v1;" (assignment_expression "uVar1 = extraout_v1" identifier = identifier) ;) (goto_statement "goto LAB_0025e4d8;" goto statement_identifier ;) })) (expression_statement "pSVar2 = (this->u2_).relobj;" (assignment_expression "pSVar2 = (this->u2_).relobj" identifier = (field_expression "(this->u2_).relobj" (parenthesized_expression "(this->u2_)" ( (field_expression "this->u2_" identifier -> field_identifier) )) . field_identifier)) ;) (ERROR "puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int,_std::" (comma_expression "puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int,_std" (assignment_expression "puVar6 = (pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int" identifier = (binary_expression "(pSVar2->section_offsets_).\n             super__Vector_base<long_long_unsigned_int" (field_expression "(pSVar2->section_offsets_).\n             super__Vector_base" (parenthesized_expression "(pSVar2->section_offsets_)" ( (field_expression "pSVar2->section_offsets_" identifier -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<long_long_unsigned_int>_>.\n             _M_impl._M_start;" (field_expression "allocator<long_long_unsigned_int>_>.\n             _M_impl._M_start" (field_expression "allocator<long_long_unsigned_int>_>.\n             _M_impl" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)) {\n      puVar6 = puVar6 + this->shndx_;\n      iVar7 = *(int *)puVar6;\n      iVar10 = (int)*puVar6;\n      if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }\n      goto LAB_0025e584;\n    }" if (parenthesized_expression "(this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3))" ( (binary_expression "this->shndx_ <\n        (uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)" (field_expression "this->shndx_" identifier -> field_identifier) < (call_expression "(uint)((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int,_std::allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3)" ( (binary_expression "(int)(pSVar2->section_offsets_).\n                    super__Vector_base<long_long_unsigned_int" (cast_expression "(int)(pSVar2->section_offsets_).\n                    super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(pSVar2->section_offsets_).\n                    super__Vector_base" (parenthesized_expression "(pSVar2->section_offsets_)" ( (field_expression "pSVar2->section_offsets_" identifier -> field_identifier) )) . field_identifier)) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6 >> 3" (binary_expression "allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish - (int)puVar6" (field_expression "allocator<long_long_unsigned_int>_>\n                    ._M_impl._M_finish" (field_expression "allocator<long_long_unsigned_int>_>\n                    ._M_impl" (binary_expression "allocator<long_long_unsigned_int>_" (binary_expression "allocator<long_long_unsigned_int" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n      puVar6 = puVar6 + this->shndx_;\n      iVar7 = *(int *)puVar6;\n      iVar10 = (int)*puVar6;\n      if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }\n      goto LAB_0025e584;\n    }" { (expression_statement "puVar6 = puVar6 + this->shndx_;" (assignment_expression "puVar6 = puVar6 + this->shndx_" identifier = (binary_expression "puVar6 + this->shndx_" identifier + (field_expression "this->shndx_" identifier -> field_identifier))) ;) (expression_statement "iVar7 = *(int *)puVar6;" (assignment_expression "iVar7 = *(int *)puVar6" identifier = (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar10 = (int)*puVar6;" (assignment_expression "iVar10 = (int)*puVar6" identifier = (cast_expression "(int)*puVar6" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*puVar6" * identifier))) ;) (if_statement "if ((iVar7 == -1) && (iVar10 == -1)) {\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" if (parenthesized_expression "((iVar7 == -1) && (iVar10 == -1))" ( (binary_expression "(iVar7 == -1) && (iVar10 == -1)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];\n        if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" { (expression_statement "p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b];" (assignment_expression "p_Var13 = (pSVar2->super_Relobj).super_Object._vptr_Object[0x3b]" identifier = (subscript_expression "(pSVar2->super_Relobj).super_Object._vptr_Object[0x3b]" (field_expression "(pSVar2->super_Relobj).super_Object._vptr_Object" (field_expression "(pSVar2->super_Relobj).super_Object" (parenthesized_expression "(pSVar2->super_Relobj)" ( (field_expression "pSVar2->super_Relobj" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if ((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }" if (parenthesized_expression "((p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0))" ( (binary_expression "(p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4) ||\n           (iVar7 = (*p_Var13)(), iVar7 == 0)" (parenthesized_expression "(p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4)" ( (binary_expression "p_Var13 == (_func_int_varargs *)PTR_sized_relobj_004c40a4" identifier == (cast_expression "(_func_int_varargs *)PTR_sized_relobj_004c40a4" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(iVar7 = (*p_Var13)(), iVar7 == 0)" ( (comma_expression "iVar7 = (*p_Var13)(), iVar7 == 0" (assignment_expression "iVar7 = (*p_Var13)()" identifier = (call_expression "(*p_Var13)()" (parenthesized_expression "(*p_Var13)" ( (pointer_expression "*p_Var13" * identifier) )) (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 0x44a;\n        }" { (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" identifier = number_literal) ;) }) (else_clause "else {\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }" else (compound_statement "{\n          EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);\n          if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }\n          uVar5 = 0x44c;\n          iVar11 = -1;\n          if ((int)EVar16 != -1) {\n            return EVar16;\n          }\n        }" { (expression_statement "EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1);" (assignment_expression "EVar16 = (*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1)" identifier = (call_expression "(*(code *)PTR_output_address_004c3cac)\n                             (pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1)" (parenthesized_expression "(*(code *)PTR_output_address_004c3cac)" ( (pointer_expression "*(code *)PTR_output_address_004c3cac" * (cast_expression "(code *)PTR_output_address_004c3cac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar12,iVar7,this->shndx_,in_a3,iVar11,uVar1)" ( identifier , identifier , (field_expression "this->shndx_" identifier -> field_identifier) , identifier , identifier , identifier )))) ;) (if_statement "if ((int)(EVar16 >> 0x20) != -1) {\n            return EVar16;\n          }" if (parenthesized_expression "((int)(EVar16 >> 0x20) != -1)" ( (binary_expression "(int)(EVar16 >> 0x20) != -1" (cast_expression "(int)(EVar16 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(EVar16 >> 0x20)" ( (binary_expression "EVar16 >> 0x20" identifier >> number_literal) ))) != number_literal) )) (compound_statement "{\n            return EVar16;\n          }" { (return_statement "return EVar16;" return identifier ;) })) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" identifier = number_literal) ;) (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) (if_statement "if ((int)EVar16 != -1) {\n            return EVar16;\n          }" if (parenthesized_expression "((int)EVar16 != -1)" ( (binary_expression "(int)EVar16 != -1" (cast_expression "(int)EVar16" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n            return EVar16;\n          }" { (return_statement "return EVar16;" return identifier ;) })) }))) (goto_statement "goto LAB_0025e4c4;" goto statement_identifier ;) })) (if_statement "if (*(int *)&(pOVar12->super_Output_data).field_0x20 < 0) {\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }" if (parenthesized_expression "(*(int *)&(pOVar12->super_Output_data).field_0x20 < 0)" ( (binary_expression "*(int *)&(pOVar12->super_Output_data).field_0x20 < 0" (pointer_expression "*(int *)&(pOVar12->super_Output_data).field_0x20" * (cast_expression "(int *)&(pOVar12->super_Output_data).field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar12->super_Output_data).field_0x20" & (field_expression "(pOVar12->super_Output_data).field_0x20" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) < number_literal) )) (compound_statement "{\n        uVar3 = uVar1 + iVar10;\n        uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;\n        return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);\n      }" { (expression_statement "uVar3 = uVar1 + iVar10;" (assignment_expression "uVar3 = uVar1 + iVar10" identifier = (binary_expression "uVar1 + iVar10" identifier + identifier)) ;) (expression_statement "uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_;" (assignment_expression "uVar4 = uVar3 + (int)(pOVar12->super_Output_data).address_" identifier = (binary_expression "uVar3 + (int)(pOVar12->super_Output_data).address_" identifier + (cast_expression "(int)(pOVar12->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (field_expression "(pOVar12->super_Output_data).address_" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) ;) (return_statement "return CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4);" return (call_expression "CONCAT44((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4)" identifier (argument_list "((uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_,uVar4)" ( (binary_expression "(uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7 +\n                        *(int *)&(pOVar12->super_Output_data).address_" (binary_expression "(uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11 + iVar7" (binary_expression "(uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1) + iVar11" (binary_expression "(uint)(uVar4 < uVar3) +\n                        (uint)(uVar3 < uVar1)" (call_expression "(uint)(uVar4 < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar3)" ( (binary_expression "uVar4 < uVar3" identifier < identifier) ))) + (call_expression "(uint)(uVar3 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 < uVar1)" ( (binary_expression "uVar3 < uVar1" identifier < identifier) )))) + identifier) + identifier) + (pointer_expression "*(int *)&(pOVar12->super_Output_data).address_" * (cast_expression "(int *)&(pOVar12->super_Output_data).address_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar12->super_Output_data).address_" & (field_expression "(pOVar12->super_Output_data).address_" (parenthesized_expression "(pOVar12->super_Output_data)" ( (field_expression "pOVar12->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) , identifier ))) ;) })) (goto_statement "goto LAB_0025e584;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x38d8" identifier + number_literal) ))) ;) (labeled_statement "LAB_0025e5bc:\n  pEVar8 = (Elf_Addr *)&DAT_000005c8;" statement_identifier : (expression_statement "pEVar8 = (Elf_Addr *)&DAT_000005c8;" (assignment_expression "pEVar8 = (Elf_Addr *)&DAT_000005c8" identifier = (cast_expression "(Elf_Addr *)&DAT_000005c8" ( (type_descriptor "Elf_Addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "this_00 = (Output_reloc<9,_true,_64,_true> *)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "this_00 = (Output_reloc<9,_true,_64,_true> *)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" identifier = (call_expression "(Output_reloc<9,_true,_64,_true> *)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (parenthesized_expression "(Output_reloc<9,_true,_64,_true> *)" ( (comma_expression "Output_reloc<9,_true,_64,_true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "_true,_64,_true> *" identifier , (comma_expression "_64,_true> *" identifier , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) )))) ;) (expression_statement "puVar14 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar14 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" identifier + number_literal) ))) ;) (expression_statement "EVar16 = get_address(this_00);" (assignment_expression "EVar16 = get_address(this_00)" identifier = (call_expression "get_address(this_00)" identifier (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "pcVar15 = *(code **)(puVar14 + 0x263910);" (assignment_expression "pcVar15 = *(code **)(puVar14 + 0x263910)" identifier = (pointer_expression "*(code **)(puVar14 + 0x263910)" * (cast_expression "(code **)(puVar14 + 0x263910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x263910)" ( (binary_expression "puVar14 + 0x263910" identifier + number_literal) ))))) ;) (expression_statement "*pEVar8 = EVar16;" (assignment_expression "*pEVar8 = EVar16" (pointer_expression "*pEVar8" * identifier) = identifier) ;) (expression_statement "uVar5 = (*pcVar15)(this_00);" (assignment_expression "uVar5 = (*pcVar15)(this_00)" identifier = (call_expression "(*pcVar15)(this_00)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "uVar1 = *(uint *)&this_00->field_0x14 >> 4;" (assignment_expression "uVar1 = *(uint *)&this_00->field_0x14 >> 4" identifier = (binary_expression "*(uint *)&this_00->field_0x14 >> 4" (pointer_expression "*(uint *)&this_00->field_0x14" * (cast_expression "(uint *)&this_00->field_0x14" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->field_0x14" & (field_expression "this_00->field_0x14" identifier -> field_identifier)))) >> number_literal)) ;) (expression_statement "*(undefined4 *)(pEVar8 + 1) = uVar5;" (assignment_expression "*(undefined4 *)(pEVar8 + 1) = uVar5" (pointer_expression "*(undefined4 *)(pEVar8 + 1)" * (cast_expression "(undefined4 *)(pEVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pEVar8 + 1)" ( (binary_expression "pEVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)pEVar8 + 0xc) = uVar1;" (assignment_expression "*(uint *)((int)pEVar8 + 0xc) = uVar1" (pointer_expression "*(uint *)((int)pEVar8 + 0xc)" * (cast_expression "(uint *)((int)pEVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pEVar8 + 0xc)" ( (binary_expression "(int)pEVar8 + 0xc" (cast_expression "(int)pEVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (return_statement "return CONCAT44(uVar5,uVar1);" return (call_expression "CONCAT44(uVar5,uVar1)" identifier (argument_list "(uVar5,uVar1)" ( identifier , identifier ))) ;) (ERROR "}" }))
(translation_unit "int __thiscall gold::Output_reloc<9,true,64,true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int *piVar1;\n  uint uVar2;\n  uint extraout_v1;\n  int *piVar3;\n  Output_reloc<9,true,64,true> *this_00;\n  uint uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined8 *puVar7;\n  undefined4 in_a3;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  undefined *puVar11;\n  code *pcVar12;\n  undefined8 uVar13;\n  \n  uVar4 = *(uint *)(this + 0x18);\n  uVar2 = *(uint *)(this + 0xc);\n  iVar9 = *(int *)(this + 8);\n  piVar3 = *(int **)(this + 4);\n  if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);\nLAB_0025e5bc:\n  puVar7 = (undefined8 *)&DAT_000005c8;\n  this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);\n  puVar11 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);\n  uVar13 = get_address(this_00);\n  pcVar12 = *(code **)(puVar11 + 0x263910);\n  *puVar7 = uVar13;\n  iVar9 = (*pcVar12)(this_00);\n  uVar2 = *(uint *)(this_00 + 0x14);\n  *(int *)(puVar7 + 1) = iVar9;\n  *(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;\n  return iVar9;\n}\n\n" (declaration "int __thiscall gold::Output_reloc<9,true,64,true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int *piVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<9" < number_literal) , identifier (ERROR ",64" , number_literal) , (ERROR "true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int" identifier > : : (function_declarator "get_address(Output_reloc<9,true,64,true> *this)" identifier (parameter_list "(Output_reloc<9,true,64,true> *this)" ( (parameter_declaration "Output_reloc" type_identifier) (ERROR "<9" < number_literal) , (parameter_declaration "true" type_identifier) (ERROR ",64" , number_literal) , (parameter_declaration "true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) ))) { primitive_type) (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint extraout_v1;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (expression_statement "Output_reloc<9,true,64,true> *this_00;" (update_expression "Output_reloc<9,true,64,true> *this_00" (binary_expression "Output_reloc<9,true,64,true> *this_00" (binary_expression "Output_reloc<9" identifier < number_literal) (ERROR ",true,64,true" , true , number_literal , true) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 in_a3;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (expression_statement "uVar4 = *(uint *)(this + 0x18);" (assignment_expression "uVar4 = *(uint *)(this + 0x18)" identifier = (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(this + 0xc);" (assignment_expression "uVar2 = *(uint *)(this + 0xc)" identifier = (pointer_expression "*(uint *)(this + 0xc)" * (cast_expression "(uint *)(this + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(this + 8);" (assignment_expression "iVar9 = *(int *)(this + 8)" identifier = (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar3 = *(int **)(this + 4);" (assignment_expression "piVar3 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" if (parenthesized_expression "(uVar4 == 0xfffffffc)" ( (binary_expression "uVar4 == 0xfffffffc" identifier == number_literal) )) (compound_statement "{\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }" { (labeled_statement "LAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }" statement_identifier : (if_statement "if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return iVar9;\n    }" { (return_statement "return iVar9;" return identifier ;) }))) (if_statement "if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }" if (parenthesized_expression "(piVar3[8] < 0)" ( (binary_expression "piVar3[8] < 0" (subscript_expression "piVar3[8]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }" { (return_statement "return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];" return (binary_expression "(uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2]" (binary_expression "(uint)(uVar2 + piVar3[3] < uVar2) + iVar9" (call_expression "(uint)(uVar2 + piVar3[3] < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 + piVar3[3] < uVar2)" ( (binary_expression "uVar2 + piVar3[3] < uVar2" (binary_expression "uVar2 + piVar3[3]" identifier + (subscript_expression "piVar3[3]" identifier [ number_literal ])) < identifier) ))) + identifier) + (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) })) (labeled_statement "LAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" identifier + number_literal) ))) ;)) }) (else_clause "else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" else (compound_statement "{\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" { (if_statement "if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" if (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24)" ( (binary_expression "*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24" (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_do_output_section_004c1b24" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }" { (if_statement "if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;" if (parenthesized_expression "((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4)" ( (binary_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4" (call_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0xf] - piVar3[0xe] >> 2)" ( (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar3[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_0025e5bc;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);" (assignment_expression "iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0xe] + uVar4 * 4)" * (cast_expression "(int *)(piVar3[0xe] + uVar4 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0xe] + uVar4 * 4)" ( (binary_expression "piVar3[0xe] + uVar4 * 4" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) + (binary_expression "uVar4 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" else (compound_statement "{\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" { (expression_statement "iVar10 = (**(code **)(*piVar3 + 0x60))();" (assignment_expression "iVar10 = (**(code **)(*piVar3 + 0x60))()" identifier = (call_expression "(**(code **)(*piVar3 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" ( (pointer_expression "**(code **)(*piVar3 + 0x60)" * (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" identifier = number_literal) ;) (if_statement "if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" { (labeled_statement "LAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" statement_identifier : (expression_statement "piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" (assignment_expression "piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" identifier = (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + -0x48b4)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" identifier + number_literal) )))) ;)) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" ( identifier , identifier , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3e08" identifier + number_literal) ))) ;) (expression_statement "uVar2 = extraout_v1;" (assignment_expression "uVar2 = extraout_v1" identifier = identifier) ;) (goto_statement "goto LAB_0025e4d8;" goto statement_identifier ;) })) (expression_statement "piVar3 = *(int **)(this + 4);" (assignment_expression "piVar3 = *(int **)(this + 4)" identifier = (pointer_expression "*(int **)(this + 4)" * (cast_expression "(int **)(this + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }" if (parenthesized_expression "(*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3))" ( (binary_expression "*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)" (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) < (call_expression "(uint)(piVar3[0x22] - piVar3[0x21] >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x22] - piVar3[0x21] >> 3)" ( (binary_expression "piVar3[0x22] - piVar3[0x21] >> 3" (binary_expression "piVar3[0x22] - piVar3[0x21]" (subscript_expression "piVar3[0x22]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x21]" identifier [ number_literal ])) >> number_literal) )))) )) (compound_statement "{\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }" { (expression_statement "piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);" (assignment_expression "piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" identifier = (cast_expression "(int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" ( (binary_expression "piVar3[0x21] + *(uint *)(this + 0x18) * 8" (subscript_expression "piVar3[0x21]" identifier [ number_literal ]) + (binary_expression "*(uint *)(this + 0x18) * 8" (pointer_expression "*(uint *)(this + 0x18)" * (cast_expression "(uint *)(this + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) * number_literal)) )))) ;) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar8 = piVar1[1];" (assignment_expression "iVar8 = piVar1[1]" identifier = (subscript_expression "piVar1[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" if (parenthesized_expression "((iVar6 == -1) && (iVar8 == -1))" ( (binary_expression "(iVar6 == -1) && (iVar8 == -1)" (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" { (if_statement "if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" if (parenthesized_expression "((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0))" ( (binary_expression "(*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)" (parenthesized_expression "(*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4)" ( (binary_expression "*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4" (pointer_expression "*(code **)(*piVar3 + 0xec)" * (cast_expression "(code **)(*piVar3 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xec)" ( (binary_expression "*piVar3 + 0xec" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_sized_relobj_004c40a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)" ( (comma_expression "iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0" (assignment_expression "iVar6 = (**(code **)(*piVar3 + 0xec))()" identifier = (call_expression "(**(code **)(*piVar3 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar3 + 0xec))" ( (pointer_expression "**(code **)(*piVar3 + 0xec)" * (pointer_expression "*(code **)(*piVar3 + 0xec)" * (cast_expression "(code **)(*piVar3 + 0xec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xec)" ( (binary_expression "*piVar3 + 0xec" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          uVar5 = 0x44a;\n        }" { (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" identifier = number_literal) ;) }) (else_clause "else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" else (compound_statement "{\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" { (expression_statement "uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);" (assignment_expression "uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" identifier = (call_expression "(*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" (parenthesized_expression "(*(code *)PTR_output_address_004c3cac)" ( (pointer_expression "*(code *)PTR_output_address_004c3cac" * (cast_expression "(code *)PTR_output_address_004c3cac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" ( identifier , identifier , (pointer_expression "*(undefined4 *)(this + 0x18)" * (cast_expression "(undefined4 *)(this + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = (int)((ulonglong)uVar13 >> 0x20);" (assignment_expression "iVar9 = (int)((ulonglong)uVar13 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar13 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar13 >> 0x20)" ( (binary_expression "(ulonglong)uVar13 >> 0x20" (cast_expression "(ulonglong)uVar13" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (iVar9 != -1) {\n            return iVar9;\n          }" if (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) )) (compound_statement "{\n            return iVar9;\n          }" { (return_statement "return iVar9;" return identifier ;) })) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" identifier = number_literal) ;) (expression_statement "iVar9 = -1;" (assignment_expression "iVar9 = -1" identifier = number_literal) ;) (if_statement "if ((int)uVar13 != -1) {\n            return -1;\n          }" if (parenthesized_expression "((int)uVar13 != -1)" ( (binary_expression "(int)uVar13 != -1" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (compound_statement "{\n            return -1;\n          }" { (return_statement "return -1;" return number_literal ;) })) }))) (goto_statement "goto LAB_0025e4c4;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }" if (parenthesized_expression "(*(int *)(iVar10 + 0x20) < 0)" ( (binary_expression "*(int *)(iVar10 + 0x20) < 0" (pointer_expression "*(int *)(iVar10 + 0x20)" * (cast_expression "(int *)(iVar10 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }" { (expression_statement "uVar4 = uVar2 + iVar8;" (assignment_expression "uVar4 = uVar2 + iVar8" identifier = (binary_expression "uVar2 + iVar8" identifier + identifier)) ;) (return_statement "return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);" return (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8)" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2)" (call_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 + *(int *)(iVar10 + 0xc) < uVar4)" ( (binary_expression "uVar4 + *(int *)(iVar10 + 0xc) < uVar4" (binary_expression "uVar4 + *(int *)(iVar10 + 0xc)" identifier + (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) < identifier) ))) + (call_expression "(uint)(uVar4 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar2)" ( (binary_expression "uVar4 < uVar2" identifier < identifier) )))) + identifier) + identifier) + (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) })) (goto_statement "goto LAB_0025e584;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x38d8" identifier + number_literal) ))) ;) (labeled_statement "LAB_0025e5bc:\n  puVar7 = (undefined8 *)&DAT_000005c8;" statement_identifier : (expression_statement "puVar7 = (undefined8 *)&DAT_000005c8;" (assignment_expression "puVar7 = (undefined8 *)&DAT_000005c8" identifier = (cast_expression "(undefined8 *)&DAT_000005c8" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" identifier = (call_expression "(Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" ( (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" identifier < number_literal) , (comma_expression "true,64,true> *" true , (comma_expression "64,true> *" number_literal , (binary_expression "true> *" true > (pointer_expression "*" * identifier))))) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" identifier + number_literal) )))) ;) (expression_statement "puVar11 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar11 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" ( identifier , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" identifier + number_literal) ))) ;) (expression_statement "uVar13 = get_address(this_00);" (assignment_expression "uVar13 = get_address(this_00)" identifier = (call_expression "get_address(this_00)" identifier (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x263910);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x263910)" identifier = (pointer_expression "*(code **)(puVar11 + 0x263910)" * (cast_expression "(code **)(puVar11 + 0x263910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x263910)" ( (binary_expression "puVar11 + 0x263910" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar9 = (*pcVar12)(this_00);" (assignment_expression "iVar9 = (*pcVar12)(this_00)" identifier = (call_expression "(*pcVar12)(this_00)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(this_00)" ( identifier )))) ;) (expression_statement "uVar2 = *(uint *)(this_00 + 0x14);" (assignment_expression "uVar2 = *(uint *)(this_00 + 0x14)" identifier = (pointer_expression "*(uint *)(this_00 + 0x14)" * (cast_expression "(uint *)(this_00 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x14)" ( (binary_expression "this_00 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar7 + 1) = iVar9;" (assignment_expression "*(int *)(puVar7 + 1) = iVar9" (pointer_expression "*(int *)(puVar7 + 1)" * (cast_expression "(int *)(puVar7 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 1)" ( (binary_expression "puVar7 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;" (assignment_expression "*(uint *)((int)puVar7 + 0xc) = uVar2 >> 4" (pointer_expression "*(uint *)((int)puVar7 + 0xc)" * (cast_expression "(uint *)((int)puVar7 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar7 + 0xc)" ( (binary_expression "(int)puVar7 + 0xc" (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar2 >> 4" identifier >> number_literal)) ;) (return_statement "return iVar9;" return identifier ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ms_call_modifier __thiscall) (ERROR IDENT : :) IDENT (ERROR < LIT) , IDENT (ERROR , LIT) , (ERROR IDENT > : : (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) (ERROR < LIT) , (parameter_declaration TYPE) (ERROR , LIT) , (parameter_declaration TYPE (ERROR >) (pointer_declarator * IDENT)) ))) { TYPE) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (update_expression (binary_expression (binary_expression IDENT < LIT) (ERROR , BOOL , LIT , BOOL) > (pointer_expression * IDENT)) --) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (return_statement return (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) < IDENT) ))) + IDENT) + (subscript_expression IDENT [ LIT ])) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (return_statement return (binary_expression (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + IDENT) + IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (comma_expression (binary_expression IDENT < LIT) , (comma_expression BOOL , (comma_expression LIT , (binary_expression BOOL > (pointer_expression * IDENT))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (return_statement return IDENT ;) (ERROR }))
(declaration "int __thiscall gold::Output_reloc<9,true,64,true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int *piVar1;" (primitive_type "int") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::" (identifier "gold") (: ":") (: ":")) (identifier "Output_reloc") (ERROR "<9" (< "<") (number_literal "9")) (, ",") (identifier "true") (ERROR ",64" (, ",") (number_literal "64")) (, ",") (ERROR "true>::get_address(Output_reloc<9,true,64,true> *this)\n\n{\n  int" (identifier "true") (> ">") (: ":") (: ":") (function_declarator "get_address(Output_reloc<9,true,64,true> *this)" (identifier "get_address") (parameter_list "(Output_reloc<9,true,64,true> *this)" (( "(") (parameter_declaration "Output_reloc" (type_identifier "Output_reloc")) (ERROR "<9" (< "<") (number_literal "9")) (, ",") (parameter_declaration "true" (type_identifier "true")) (ERROR ",64" (, ",") (number_literal "64")) (, ",") (parameter_declaration "true> *this" (type_identifier "true") (ERROR ">" (> ">")) (pointer_declarator "*this" (* "*") (identifier "this"))) () ")"))) ({ "{") (primitive_type "int")) (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint extraout_v1;" (type_identifier "uint") (identifier "extraout_v1") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (expression_statement "Output_reloc<9,true,64,true> *this_00;" (update_expression "Output_reloc<9,true,64,true> *this_00" (binary_expression "Output_reloc<9,true,64,true> *this_00" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (ERROR ",true,64,true" (, ",") (true "true") (, ",") (number_literal "64") (, ",") (true "true")) (> ">") (pointer_expression "*this_00" (* "*") (identifier "this_00"))) (-- "")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 in_a3;" (type_identifier "undefined4") (identifier "in_a3") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (expression_statement "uVar4 = *(uint *)(this + 0x18);" (assignment_expression "uVar4 = *(uint *)(this + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(this + 0x18)" (* "*") (cast_expression "(uint *)(this + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(this + 0xc);" (assignment_expression "uVar2 = *(uint *)(this + 0xc)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(this + 0xc)" (* "*") (cast_expression "(uint *)(this + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(this + 8);" (assignment_expression "iVar9 = *(int *)(this + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar3 = *(int **)(this + 4);" (assignment_expression "piVar3 = *(int **)(this + 4)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar4 == 0xfffffffc) {\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }\n  else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" (if "if") (parenthesized_expression "(uVar4 == 0xfffffffc)" (( "(") (binary_expression "uVar4 == 0xfffffffc" (identifier "uVar4") (== "==") (number_literal "0xfffffffc")) () ")")) (compound_statement "{\nLAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }\n    if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }\nLAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);\n  }" ({ "{") (labeled_statement "LAB_0025e4d8:\n    if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }" (statement_identifier "LAB_0025e4d8") (: ":") (if_statement "if (piVar3 == (int *)0x0) {\n      return iVar9;\n    }" (if "if") (parenthesized_expression "(piVar3 == (int *)0x0)" (( "(") (binary_expression "piVar3 == (int *)0x0" (identifier "piVar3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return iVar9;\n    }" ({ "{") (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}")))) (if_statement "if (piVar3[8] < 0) {\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }" (if "if") (parenthesized_expression "(piVar3[8] < 0)" (( "(") (binary_expression "piVar3[8] < 0" (subscript_expression "piVar3[8]" (identifier "piVar3") ([ "[") (number_literal "8") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];\n    }" ({ "{") (return_statement "return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];" (return "return") (binary_expression "(uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2]" (binary_expression "(uint)(uVar2 + piVar3[3] < uVar2) + iVar9" (call_expression "(uint)(uVar2 + piVar3[3] < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 + piVar3[3] < uVar2)" (( "(") (binary_expression "uVar2 + piVar3[3] < uVar2" (binary_expression "uVar2 + piVar3[3]" (identifier "uVar2") (+ "+") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (< "<") (identifier "uVar2")) () ")"))) (+ "+") (identifier "iVar9")) (+ "+") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (labeled_statement "LAB_0025e584:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" (statement_identifier "LAB_0025e584") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,\n               PTR_s_in_a_linker_script_004c191c + -0x2a40)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xc5") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x2a40" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x2a40")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" (else "else") (compound_statement "{\n    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }\n    uVar5 = 0x442;\n    if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }\n    piVar3 = *(int **)(this + 4);\n    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }\n  }" ({ "{") (if_statement "if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }\n    else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" (if "if") (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24)" (( "(") (binary_expression "*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24" (pointer_expression "*(code **)(*piVar3 + 0x60)" (* "*") (cast_expression "(code **)(*piVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x60)" (( "(") (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (cast_expression "(code *)PTR_do_output_section_004c1b24" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_output_section_004c1b24"))) () ")")) (compound_statement "{\n      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;\n      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);\n    }" ({ "{") (if_statement "if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;" (if "if") (parenthesized_expression "((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4)" (( "(") (binary_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4" (call_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0xf] - piVar3[0xe] >> 2)" (( "(") (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" (identifier "piVar3") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar4")) () ")")) (goto_statement "goto LAB_0025e5bc;" (goto "goto") (statement_identifier "LAB_0025e5bc") (; ";"))) (expression_statement "iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);" (assignment_expression "iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(piVar3[0xe] + uVar4 * 4)" (* "*") (cast_expression "(int *)(piVar3[0xe] + uVar4 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0xe] + uVar4 * 4)" (( "(") (binary_expression "piVar3[0xe] + uVar4 * 4" (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar4 * 4" (identifier "uVar4") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" (else "else") (compound_statement "{\n      iVar10 = (**(code **)(*piVar3 + 0x60))();\n    }" ({ "{") (expression_statement "iVar10 = (**(code **)(*piVar3 + 0x60))();" (assignment_expression "iVar10 = (**(code **)(*piVar3 + 0x60))()" (identifier "iVar10") (= "=") (call_expression "(**(code **)(*piVar3 + 0x60))()" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0x60)" (* "*") (cast_expression "(code **)(*piVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x60)" (( "(") (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar5 = 0x442;" (assignment_expression "uVar5 = 0x442" (identifier "uVar5") (= "=") (number_literal "0x442")) (; ";")) (if_statement "if (iVar10 == 0) {\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);\n      uVar2 = extraout_v1;\n      goto LAB_0025e4d8;\n    }" ({ "{") (labeled_statement "LAB_0025e4c4:\n      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" (statement_identifier "LAB_0025e4c4") (: ":") (expression_statement "piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);" (assignment_expression "piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" (identifier "piVar3") (= "=") (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + -0x48b4)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x48b4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x48b4")) () ")")))) (; ";"))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08)" (( "(") (identifier "piVar3") (, ",") (identifier "uVar5") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3e08" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3e08")) () ")"))) (; ";")) (expression_statement "uVar2 = extraout_v1;" (assignment_expression "uVar2 = extraout_v1" (identifier "uVar2") (= "=") (identifier "extraout_v1")) (; ";")) (goto_statement "goto LAB_0025e4d8;" (goto "goto") (statement_identifier "LAB_0025e4d8") (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(this + 4);" (assignment_expression "piVar3 = *(int **)(this + 4)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(this + 4)" (* "*") (cast_expression "(int **)(this + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }" (if "if") (parenthesized_expression "(*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3))" (( "(") (binary_expression "*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)" (pointer_expression "*(uint *)(this + 0x18)" (* "*") (cast_expression "(uint *)(this + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (< "<") (call_expression "(uint)(piVar3[0x22] - piVar3[0x21] >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0x22] - piVar3[0x21] >> 3)" (( "(") (binary_expression "piVar3[0x22] - piVar3[0x21] >> 3" (binary_expression "piVar3[0x22] - piVar3[0x21]" (subscript_expression "piVar3[0x22]" (identifier "piVar3") ([ "[") (number_literal "0x22") (] "]")) (- "-") (subscript_expression "piVar3[0x21]" (identifier "piVar3") ([ "[") (number_literal "0x21") (] "]"))) (>> ">>") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);\n      iVar6 = *piVar1;\n      iVar8 = piVar1[1];\n      if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }\n      if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }\n      goto LAB_0025e584;\n    }" ({ "{") (expression_statement "piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);" (assignment_expression "piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" (identifier "piVar1") (= "=") (cast_expression "(int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0x21] + *(uint *)(this + 0x18) * 8)" (( "(") (binary_expression "piVar3[0x21] + *(uint *)(this + 0x18) * 8" (subscript_expression "piVar3[0x21]" (identifier "piVar3") ([ "[") (number_literal "0x21") (] "]")) (+ "+") (binary_expression "*(uint *)(this + 0x18) * 8" (pointer_expression "*(uint *)(this + 0x18)" (* "*") (cast_expression "(uint *)(this + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar6 = *piVar1;" (assignment_expression "iVar6 = *piVar1" (identifier "iVar6") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "iVar8 = piVar1[1];" (assignment_expression "iVar8 = piVar1[1]" (identifier "iVar8") (= "=") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((iVar6 == -1) && (iVar8 == -1)) {\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" (if "if") (parenthesized_expression "((iVar6 == -1) && (iVar8 == -1))" (( "(") (binary_expression "(iVar6 == -1) && (iVar8 == -1)" (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }\n        goto LAB_0025e4c4;\n      }" ({ "{") (if_statement "if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {\n          uVar5 = 0x44a;\n        }\n        else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" (if "if") (parenthesized_expression "((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0))" (( "(") (binary_expression "(*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||\n           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)" (parenthesized_expression "(*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4)" (( "(") (binary_expression "*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4" (pointer_expression "*(code **)(*piVar3 + 0xec)" (* "*") (cast_expression "(code **)(*piVar3 + 0xec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xec)" (( "(") (binary_expression "*piVar3 + 0xec" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xec")) () ")")))) (== "==") (cast_expression "(code *)PTR_sized_relobj_004c40a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sized_relobj_004c40a4"))) () ")")) (|| "||") (parenthesized_expression "(iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)" (( "(") (comma_expression "iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0" (assignment_expression "iVar6 = (**(code **)(*piVar3 + 0xec))()" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*piVar3 + 0xec))()" (parenthesized_expression "(**(code **)(*piVar3 + 0xec))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xec)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xec)" (* "*") (cast_expression "(code **)(*piVar3 + 0xec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xec)" (( "(") (binary_expression "*piVar3 + 0xec" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xec")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          uVar5 = 0x44a;\n        }" ({ "{") (expression_statement "uVar5 = 0x44a;" (assignment_expression "uVar5 = 0x44a" (identifier "uVar5") (= "=") (number_literal "0x44a")) (; ";")) (} "}")) (else_clause "else {\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" (else "else") (compound_statement "{\n          uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);\n          iVar9 = (int)((ulonglong)uVar13 >> 0x20);\n          if (iVar9 != -1) {\n            return iVar9;\n          }\n          uVar5 = 0x44c;\n          iVar9 = -1;\n          if ((int)uVar13 != -1) {\n            return -1;\n          }\n        }" ({ "{") (expression_statement "uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);" (assignment_expression "uVar13 = (*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" (identifier "uVar13") (= "=") (call_expression "(*(code *)PTR_output_address_004c3cac)\n                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" (parenthesized_expression "(*(code *)PTR_output_address_004c3cac)" (( "(") (pointer_expression "*(code *)PTR_output_address_004c3cac" (* "*") (cast_expression "(code *)PTR_output_address_004c3cac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_output_address_004c3cac"))) () ")")) (argument_list "(iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2)" (( "(") (identifier "iVar10") (, ",") (identifier "iVar6") (, ",") (pointer_expression "*(undefined4 *)(this + 0x18)" (* "*") (cast_expression "(undefined4 *)(this + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "in_a3") (, ",") (identifier "iVar9") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "iVar9 = (int)((ulonglong)uVar13 >> 0x20);" (assignment_expression "iVar9 = (int)((ulonglong)uVar13 >> 0x20)" (identifier "iVar9") (= "=") (cast_expression "(int)((ulonglong)uVar13 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar13 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar13 >> 0x20" (cast_expression "(ulonglong)uVar13" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar13")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (iVar9 != -1) {\n            return iVar9;\n          }" (if "if") (parenthesized_expression "(iVar9 != -1)" (( "(") (binary_expression "iVar9 != -1" (identifier "iVar9") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n            return iVar9;\n          }" ({ "{") (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (} "}"))) (expression_statement "uVar5 = 0x44c;" (assignment_expression "uVar5 = 0x44c" (identifier "uVar5") (= "=") (number_literal "0x44c")) (; ";")) (expression_statement "iVar9 = -1;" (assignment_expression "iVar9 = -1" (identifier "iVar9") (= "=") (number_literal "-1")) (; ";")) (if_statement "if ((int)uVar13 != -1) {\n            return -1;\n          }" (if "if") (parenthesized_expression "((int)uVar13 != -1)" (( "(") (binary_expression "(int)uVar13 != -1" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n            return -1;\n          }" ({ "{") (return_statement "return -1;" (return "return") (number_literal "-1") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_0025e4c4;" (goto "goto") (statement_identifier "LAB_0025e4c4") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar10 + 0x20) < 0) {\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar10 + 0x20) < 0)" (( "(") (binary_expression "*(int *)(iVar10 + 0x20) < 0" (pointer_expression "*(int *)(iVar10 + 0x20)" (* "*") (cast_expression "(int *)(iVar10 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = uVar2 + iVar8;\n        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);\n      }" ({ "{") (expression_statement "uVar4 = uVar2 + iVar8;" (assignment_expression "uVar4 = uVar2 + iVar8" (identifier "uVar4") (= "=") (binary_expression "uVar2 + iVar8" (identifier "uVar2") (+ "+") (identifier "iVar8"))) (; ";")) (return_statement "return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);" (return "return") (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8)" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9 + iVar6" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2) + iVar9" (binary_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +\n               (uint)(uVar4 < uVar2)" (call_expression "(uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 + *(int *)(iVar10 + 0xc) < uVar4)" (( "(") (binary_expression "uVar4 + *(int *)(iVar10 + 0xc) < uVar4" (binary_expression "uVar4 + *(int *)(iVar10 + 0xc)" (identifier "uVar4") (+ "+") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (< "<") (identifier "uVar4")) () ")"))) (+ "+") (call_expression "(uint)(uVar4 < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < uVar2)" (( "(") (binary_expression "uVar4 < uVar2" (identifier "uVar4") (< "<") (identifier "uVar2")) () ")")))) (+ "+") (identifier "iVar9")) (+ "+") (identifier "iVar6")) (+ "+") (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (goto_statement "goto LAB_0025e584;" (goto "goto") (statement_identifier "LAB_0025e584") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,\n             PTR_s_in_a_linker_script_004c191c + -0x38d8)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570")) (, ",") (number_literal "0x7f7") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x38d8" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x38d8")) () ")"))) (; ";")) (labeled_statement "LAB_0025e5bc:\n  puVar7 = (undefined8 *)&DAT_000005c8;" (statement_identifier "LAB_0025e5bc") (: ":") (expression_statement "puVar7 = (undefined8 *)&DAT_000005c8;" (assignment_expression "puVar7 = (undefined8 *)&DAT_000005c8" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)&DAT_000005c8" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000005c8" (& "&") (identifier "DAT_000005c8")))) (; ";"))) (expression_statement "this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);" (assignment_expression "this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (identifier "this_00") (= "=") (call_expression "(Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (parenthesized_expression "(Output_reloc<9,true,64,true> *)" (( "(") (comma_expression "Output_reloc<9,true,64,true> *" (binary_expression "Output_reloc<9" (identifier "Output_reloc") (< "<") (number_literal "9")) (, ",") (comma_expression "true,64,true> *" (true "true") (, ",") (comma_expression "64,true> *" (number_literal "64") (, ",") (binary_expression "true> *" (true "true") (> ">") (pointer_expression "*" (* "*") (identifier "")))))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x4570")) () ")")))) (; ";")) (expression_statement "puVar11 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar11 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar11") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404)" (( "(") (identifier "this_00") (, ",") (number_literal "0x5c8") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x3404" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x3404")) () ")"))) (; ";")) (expression_statement "uVar13 = get_address(this_00);" (assignment_expression "uVar13 = get_address(this_00)" (identifier "uVar13") (= "=") (call_expression "get_address(this_00)" (identifier "get_address") (argument_list "(this_00)" (( "(") (identifier "this_00") () ")")))) (; ";")) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x263910);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x263910)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(puVar11 + 0x263910)" (* "*") (cast_expression "(code **)(puVar11 + 0x263910)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + 0x263910)" (( "(") (binary_expression "puVar11 + 0x263910" (identifier "puVar11") (+ "+") (number_literal "0x263910")) () ")"))))) (; ";")) (expression_statement "*puVar7 = uVar13;" (assignment_expression "*puVar7 = uVar13" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "iVar9 = (*pcVar12)(this_00);" (assignment_expression "iVar9 = (*pcVar12)(this_00)" (identifier "iVar9") (= "=") (call_expression "(*pcVar12)(this_00)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(this_00)" (( "(") (identifier "this_00") () ")")))) (; ";")) (expression_statement "uVar2 = *(uint *)(this_00 + 0x14);" (assignment_expression "uVar2 = *(uint *)(this_00 + 0x14)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(this_00 + 0x14)" (* "*") (cast_expression "(uint *)(this_00 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x14)" (( "(") (binary_expression "this_00 + 0x14" (identifier "this_00") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar7 + 1) = iVar9;" (assignment_expression "*(int *)(puVar7 + 1) = iVar9" (pointer_expression "*(int *)(puVar7 + 1)" (* "*") (cast_expression "(int *)(puVar7 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 1)" (( "(") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;" (assignment_expression "*(uint *)((int)puVar7 + 0xc) = uVar2 >> 4" (pointer_expression "*(uint *)((int)puVar7 + 0xc)" (* "*") (cast_expression "(uint *)((int)puVar7 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar7 + 0xc)" (( "(") (binary_expression "(int)puVar7 + 0xc" (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "uVar2 >> 4" (identifier "uVar2") (>> ">>") (number_literal "4"))) (; ";")) (return_statement "return iVar9;" (return "return") (identifier "iVar9") (; ";")) (ERROR "}" (} "}"))
(translation_unit (declaration type: (primitive_type) declarator: (ms_call_modifier) (ERROR (identifier)) declarator: (identifier) (ERROR (number_literal)) declarator: (identifier) (ERROR (number_literal)) (ERROR (identifier) (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier)) (ERROR (number_literal)) (parameter_declaration type: (type_identifier)) (ERROR (number_literal)) (parameter_declaration type: (type_identifier) (ERROR) declarator: (pointer_declarator declarator: (identifier))))) (primitive_type)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (update_expression argument: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) (ERROR (true) (number_literal) (true)) right: (pointer_expression argument: (identifier))) operator: (MISSING "--"))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) right: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (return_statement (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (identifier)) right: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (comma_expression left: (true) right: (comma_expression left: (number_literal) right: (binary_expression left: (true) right: (pointer_expression argument: (MISSING identifier))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier)) (ERROR))

/* gold::Output_reloc<9, true, 64, true>::MASKED() const */

int __thiscall gold::Output_reloc<9,true,64,true>::MASKED(Output_reloc<9,true,64,true> *this)

{
  int *piVar1;
  uint uVar2;
  uint extraout_v1;
  int *piVar3;
  Output_reloc<9,true,64,true> *this_00;
  uint uVar4;
  undefined4 uVar5;
  int iVar6;
  undefined8 *puVar7;
  undefined4 in_a3;
  int iVar8;
  int iVar9;
  int iVar10;
  undefined *puVar11;
  code *pcVar12;
  undefined8 uVar13;
  
  uVar4 = *(uint *)(this + 0x18);
  uVar2 = *(uint *)(this + 0xc);
  iVar9 = *(int *)(this + 8);
  piVar3 = *(int **)(this + 4);
  if (uVar4 == 0xfffffffc) {
LAB_0025e4d8:
    if (piVar3 == (int *)0x0) {
      return iVar9;
    }
    if (piVar3[8] < 0) {
      return (uint)(uVar2 + piVar3[3] < uVar2) + iVar9 + piVar3[2];
    }
LAB_0025e584:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
               PTR_s_in_a_linker_script_004c191c + -0x2a40);
  }
  else {
    if (*(code **)(*piVar3 + 0x60) == (code *)PTR_do_output_section_004c1b24) {
      if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar4) goto LAB_0025e5bc;
      iVar10 = *(int *)(piVar3[0xe] + uVar4 * 4);
    }
    else {
      iVar10 = (**(code **)(*piVar3 + 0x60))();
    }
    uVar5 = 0x442;
    if (iVar10 == 0) {
LAB_0025e4c4:
      piVar3 = (int *)(PTR_s_in_a_linker_script_004c191c + -0x48b4);
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (piVar3,uVar5,PTR_s_in_a_linker_script_004c191c + -0x3e08);
      uVar2 = extraout_v1;
      goto LAB_0025e4d8;
    }
    piVar3 = *(int **)(this + 4);
    if (*(uint *)(this + 0x18) < (uint)(piVar3[0x22] - piVar3[0x21] >> 3)) {
      piVar1 = (int *)(piVar3[0x21] + *(uint *)(this + 0x18) * 8);
      iVar6 = *piVar1;
      iVar8 = piVar1[1];
      if ((iVar6 == -1) && (iVar8 == -1)) {
        if ((*(code **)(*piVar3 + 0xec) == (code *)PTR_sized_relobj_004c40a4) ||
           (iVar6 = (**(code **)(*piVar3 + 0xec))(), iVar6 == 0)) {
          uVar5 = 0x44a;
        }
        else {
          uVar13 = (*(code *)PTR_output_address_004c3cac)
                             (iVar10,iVar6,*(undefined4 *)(this + 0x18),in_a3,iVar9,uVar2);
          iVar9 = (int)((ulonglong)uVar13 >> 0x20);
          if (iVar9 != -1) {
            return iVar9;
          }
          uVar5 = 0x44c;
          iVar9 = -1;
          if ((int)uVar13 != -1) {
            return -1;
          }
        }
        goto LAB_0025e4c4;
      }
      if (*(int *)(iVar10 + 0x20) < 0) {
        uVar4 = uVar2 + iVar8;
        return (uint)(uVar4 + *(int *)(iVar10 + 0xc) < uVar4) +
               (uint)(uVar4 < uVar2) + iVar9 + iVar6 + *(int *)(iVar10 + 8);
      }
      goto LAB_0025e584;
    }
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570,0x7f7,
             PTR_s_in_a_linker_script_004c191c + -0x38d8);
LAB_0025e5bc:
  puVar7 = (undefined8 *)&DAT_000005c8;
  this_00 = (Output_reloc<9,true,64,true> *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x4570);
  puVar11 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (this_00,0x5c8,PTR_s_in_a_linker_script_004c191c + -0x3404);
  uVar13 = MASKED(this_00);
  pcVar12 = *(code **)(puVar11 + 0x263910);
  *puVar7 = uVar13;
  iVar9 = (*pcVar12)(this_00);
  uVar2 = *(uint *)(this_00 + 0x14);
  *(int *)(puVar7 + 1) = iVar9;
  *(uint *)((int)puVar7 + 0xc) = uVar2 >> 4;
  return iVar9;
}

