
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* DWARF original prototype: void lowest_load_address_in_list(Output_segment * this,
   Output_data_list * pdl, Output_section * * found, uint64_t * found_lma) */

void __thiscall
gold::Output_segment::lowest_load_address_in_list
          (Output_segment *this,Output_data_list *pdl,Output_section **found,uint64_t *found_lma)

{
  Output_data_list *pOVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  uint uVar5;
  uint in_v1;
  Output_section *pOVar6;
  Output_segment *this_00;
  undefined *puVar7;
  pointer ppOVar8;
  Output_segment *pdl_00;
  Output_section *pOVar9;
  _func_int_varargs *p_Var10;
  code *pcVar11;
  undefined4 uStack_68;
  undefined4 uStack_64;
  Output_section *apOStack_60 [3];
  pointer ppOStack_54;
  Output_section *pOStack_50;
  uint64_t *puStack_4c;
  Output_data_list *pOStack_48;
  Output_section **ppOStack_44;
  undefined *puStack_40;
  code *pcStack_3c;
  
  puVar3 = PTR_do_load_address_004c3c4c;
  puVar2 = PTR_do_has_load_address_004c213c;
  ppOVar8 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).
            _M_impl._M_start;
  if (ppOVar8 !=
      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.
      _M_finish) {
    do {
      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);
      if (iVar4 != 0) {
        pOVar9 = (Output_section *)*ppOVar8;
        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];
        if (p_Var10 == (_func_int_varargs *)puVar2) {
          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;
        }
        else {
          uVar5 = (*p_Var10)(pOVar9);
        }
        if (uVar5 == 0) {
          puVar7 = PTR_s_in_a_linker_script_004c191c;
          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {
LAB_00218b4c:
            pcVar11 = section_with_lowest_load_address;
            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);
            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);
            puStack_40 = puVar2;
            uStack_64 = 0;
            uStack_68 = 0;
            apOStack_60[0] = (Output_section *)0x0;
            pdl_00 = this_00;
            ppOStack_54 = ppOVar8;
            pOStack_50 = pOVar9;
            puStack_4c = found_lma;
            pOStack_48 = pdl;
            ppOStack_44 = found;
            pcStack_3c = pcVar11;
            do {
              pOVar1 = pdl_00->output_lists_;
              lowest_load_address_in_list
                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);
              pdl_00 = (Output_segment *)(pOVar1 + 1);
            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);
            return;
          }
          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;
          in_v1 = (uint)(pOVar9->super_Output_data).address_;
LAB_00218a40:
          pOVar6 = *found;
        }
        else {
          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];
          if (p_Var10 == (_func_int_varargs *)puVar3) {
            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {
              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;
              (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);
              goto LAB_00218b4c;
            }
            uVar5 = *(uint *)&pOVar9->load_address_;
            in_v1 = (uint)pOVar9->load_address_;
            goto LAB_00218a40;
          }
          uVar5 = (*p_Var10)(pOVar9);
          pOVar6 = *found;
        }
        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||
           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {
          *found = pOVar9;
          *(uint *)found_lma = uVar5;
          *(uint *)((int)found_lma + 4) = in_v1;
        }
      }
      ppOVar8 = ppOVar8 + 1;
    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).
             _M_impl._M_finish != ppOVar8);
  }
  return;
}



/* gold::Output_segment::lowest_load_address_in_list(std::vector<gold::Output_data*,
   std::allocator<gold::Output_data*> > const*, gold::Output_section**, unsigned long long*) const
    */

void __thiscall
gold::Output_segment::lowest_load_address_in_list
          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  Output_section *pOVar6;
  undefined4 *puVar7;
  Output_section *pOVar8;
  ulonglong uVar9;
  
  puVar2 = PTR_do_load_address_004c3c4c;
  puVar1 = PTR_do_has_load_address_004c213c;
  puVar7 = *(undefined4 **)param_1;
  if (puVar7 != *(undefined4 **)(param_1 + 4)) {
    do {
      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);
      if (iVar3 != 0) {
        pOVar8 = (Output_section *)*puVar7;
        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {
          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;
        }
        else {
          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);
        }
        if (uVar4 == 0) {
          if (-1 < *(int *)(pOVar8 + 0x20)) {
            (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
                       PTR_s_in_a_linker_script_004c191c + -0x2a40);
            return;
          }
          iVar3 = *(int *)(pOVar8 + 8);
          iVar5 = *(int *)(pOVar8 + 0xc);
LAB_00218a40:
          uVar9 = CONCAT44(iVar3,iVar5);
          pOVar6 = *param_2;
        }
        else {
          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {
            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {
              (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,
                         PTR_s_in_a_linker_script_004c191c + -0x32ac);
              return;
            }
            iVar3 = *(int *)(pOVar8 + 0x38);
            iVar5 = *(int *)(pOVar8 + 0x3c);
            goto LAB_00218a40;
          }
          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);
          pOVar6 = *param_2;
        }
        uVar4 = (uint)(uVar9 >> 0x20);
        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||
           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {
          *param_2 = pOVar8;
          *param_3 = uVar9;
        }
      }
      puVar7 = puVar7 + 1;
    } while (*(undefined4 **)(param_1 + 4) != puVar7);
  }
  return;
}


lui gp,0x2b
addiu gp,gp,0x880
addu gp,gp,t9
addiu sp,sp,-0x38
lw v0,0x4(a1)
sw s0,0x18(sp)
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
lw s0,0x0(a1)
beq s0,v0,0x00218b0c
_or s2,a3,zero
lw s5,-0x7104(gp)
or s4,a2,zero
lw s6,-0x55f4(gp)
b 0x00218a90
_or s3,a1,zero
lw v0,0x0(s1)
lw t9,0x14(v0)
bne t9,s6,0x00218afc
_nop
lw v0,0x98(s1)
ext v0,v0,0x18,0x1
beq v0,zero,0x00218b34
_lw a2,-0x7924(gp)
lw v0,0x38(s1)
lw v1,0x3c(s1)
lw a0,0x0(s4)
beq a0,zero,0x00218a74
_nop
lw a0,0x0(s2)
sltu a1,v0,a0
bne a1,zero,0x00218a74
_nop
bne a0,v0,0x00218a80
_nop
lw a0,0x4(s2)
sltu a0,v1,a0
beq a0,zero,0x00218a80
_nop
sw s1,0x0(s4)
sw v0,0x0(s2)
sw v1,0x4(s2)
lw v0,0x4(s3)
addiu s0,s0,0x4
beq v0,s0,0x00218b10
_lw ra,0x34(sp)
lw v0,0x0(s0)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0x18(v0)
jalr t9
_nop
beq v0,zero,0x00218a80
_lw gp,0x10(sp)
lw s1,0x0(s0)
lw v0,0x0(s1)
lw t9,0x10(v0)
bne t9,s5,0x00218aec
_nop
lw v0,0x98(s1)
ext v0,v0,0x18,0x1
bne v0,zero,0x00218a18
_nop
lw v0,0x20(s1)
bgez v0,0x00218b4c
_lw a2,-0x7924(gp)
lw v0,0x8(s1)
b 0x00218a40
_lw v1,0xc(s1)
jalr t9
_or a0,s1,zero
b 0x00218acc
_lw gp,0x10(sp)
jalr t9
_or a0,s1,zero
b 0x00218a44
_lw a0,0x0(s4)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
li a1,0x107b
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x32ac
jalr t9
_addiu a0,a0,0x3574
li a1,0xc5
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,-0x2a40
jalr t9
_addiu a0,a0,0x3574
(translation_unit "/* gold::Output_segment::lowest_load_address_in_list(std::vector<gold::Output_data*,\n   std::allocator<gold::Output_data*> > const*, gold::Output_section**, unsigned long long*) const\n    */\n\nvoid __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)" identifier (parameter_list "(Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)" ( (parameter_declaration "Output_segment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "vector *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Output_section **param_2" type_identifier (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))) , (parameter_declaration "ulonglong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "Output_section *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "Output_section *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "ulonglong uVar9;" type_identifier identifier ;) (expression_statement "puVar2 = PTR_do_load_address_004c3c4c;" (assignment_expression "puVar2 = PTR_do_load_address_004c3c4c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_do_has_load_address_004c213c;" (assignment_expression "puVar1 = PTR_do_has_load_address_004c213c" identifier = identifier) ;) (expression_statement "puVar7 = *(undefined4 **)param_1;" (assignment_expression "puVar7 = *(undefined4 **)param_1" identifier = (pointer_expression "*(undefined4 **)param_1" * (cast_expression "(undefined4 **)param_1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }" if (parenthesized_expression "(puVar7 != *(undefined4 **)(param_1 + 4))" ( (binary_expression "puVar7 != *(undefined4 **)(param_1 + 4)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }" { (do_statement "do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);" do (compound_statement "{\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    }" { (expression_statement "iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);" (assignment_expression "iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x18))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x18)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x18)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x18)" ( (binary_expression "*(int *)*puVar7 + 0x18" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) ;) (if_statement "if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }" { (expression_statement "pOVar8 = (Output_section *)*puVar7;" (assignment_expression "pOVar8 = (Output_section *)*puVar7" identifier = (cast_expression "(Output_section *)*puVar7" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" if (parenthesized_expression "(*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1)" ( (binary_expression "*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1" (pointer_expression "*(code **)(*(int *)pOVar8 + 0x10)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x10)" ( (binary_expression "*(int *)pOVar8 + 0x10" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }" { (expression_statement "uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;" (assignment_expression "uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f" identifier = (binary_expression "(uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f" (call_expression "(uint)(*(int *)(pOVar8 + 0x98) << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pOVar8 + 0x98) << 7)" ( (binary_expression "*(int *)(pOVar8 + 0x98) << 7" (pointer_expression "*(int *)(pOVar8 + 0x98)" * (cast_expression "(int *)(pOVar8 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x98)" ( (binary_expression "pOVar8 + 0x98" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) }) (else_clause "else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" else (compound_statement "{\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" { (expression_statement "uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);" (assignment_expression "uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8)" identifier = (call_expression "(**(code **)(*(int *)pOVar8 + 0x10))(pOVar8)" (parenthesized_expression "(**(code **)(*(int *)pOVar8 + 0x10))" ( (pointer_expression "**(code **)(*(int *)pOVar8 + 0x10)" * (pointer_expression "*(code **)(*(int *)pOVar8 + 0x10)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x10)" ( (binary_expression "*(int *)pOVar8 + 0x10" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pOVar8)" ( identifier )))) ;) }))) (if_statement "if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }" { (if_statement "if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }" if (parenthesized_expression "(-1 < *(int *)(pOVar8 + 0x20))" ( (binary_expression "-1 < *(int *)(pOVar8 + 0x20)" number_literal < (pointer_expression "*(int *)(pOVar8 + 0x20)" * (cast_expression "(int *)(pOVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x20)" ( (binary_expression "pOVar8 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\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            return;\n          }" { (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) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = *(int *)(pOVar8 + 8);" (assignment_expression "iVar3 = *(int *)(pOVar8 + 8)" identifier = (pointer_expression "*(int *)(pOVar8 + 8)" * (cast_expression "(int *)(pOVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 8)" ( (binary_expression "pOVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pOVar8 + 0xc);" (assignment_expression "iVar5 = *(int *)(pOVar8 + 0xc)" identifier = (pointer_expression "*(int *)(pOVar8 + 0xc)" * (cast_expression "(int *)(pOVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0xc)" ( (binary_expression "pOVar8 + 0xc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);" statement_identifier : (expression_statement "uVar9 = CONCAT44(iVar3,iVar5);" (assignment_expression "uVar9 = CONCAT44(iVar3,iVar5)" identifier = (call_expression "CONCAT44(iVar3,iVar5)" identifier (argument_list "(iVar3,iVar5)" ( identifier , identifier )))) ;)) (expression_statement "pOVar6 = *param_2;" (assignment_expression "pOVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) (else_clause "else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" else (compound_statement "{\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" { (if_statement "if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }" if (parenthesized_expression "(*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2)" ( (binary_expression "*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2" (pointer_expression "*(code **)(*(int *)pOVar8 + 0x14)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x14)" ( (binary_expression "*(int *)pOVar8 + 0x14" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }" { (if_statement "if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }" if (parenthesized_expression "(-1 < *(int *)(pOVar8 + 0x98) << 7)" ( (binary_expression "-1 < *(int *)(pOVar8 + 0x98) << 7" number_literal < (binary_expression "*(int *)(pOVar8 + 0x98) << 7" (pointer_expression "*(int *)(pOVar8 + 0x98)" * (cast_expression "(int *)(pOVar8 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x98)" ( (binary_expression "pOVar8 + 0x98" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac)" (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,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , (pointer_expression "&DAT_0000107b" & identifier) , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32ac" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = *(int *)(pOVar8 + 0x38);" (assignment_expression "iVar3 = *(int *)(pOVar8 + 0x38)" identifier = (pointer_expression "*(int *)(pOVar8 + 0x38)" * (cast_expression "(int *)(pOVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x38)" ( (binary_expression "pOVar8 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pOVar8 + 0x3c);" (assignment_expression "iVar5 = *(int *)(pOVar8 + 0x3c)" identifier = (pointer_expression "*(int *)(pOVar8 + 0x3c)" * (cast_expression "(int *)(pOVar8 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x3c)" ( (binary_expression "pOVar8 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00218a40;" goto statement_identifier ;) })) (expression_statement "uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);" (assignment_expression "uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8)" identifier = (call_expression "(**(code **)(*(int *)pOVar8 + 0x14))(pOVar8)" (parenthesized_expression "(**(code **)(*(int *)pOVar8 + 0x14))" ( (pointer_expression "**(code **)(*(int *)pOVar8 + 0x14)" * (pointer_expression "*(code **)(*(int *)pOVar8 + 0x14)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x14)" ( (binary_expression "*(int *)pOVar8 + 0x14" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pOVar8)" ( identifier )))) ;) (expression_statement "pOVar6 = *param_2;" (assignment_expression "pOVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }))) (expression_statement "uVar4 = (uint)(uVar9 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar9 >> 0x20)" identifier = (call_expression "(uint)(uVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }" if (parenthesized_expression "(((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3))))" ( (binary_expression "((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))" (parenthesized_expression "((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3))" ( (binary_expression "(pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)" (parenthesized_expression "(pOVar6 == (Output_section *)0x0)" ( (binary_expression "pOVar6 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar4 < *(uint *)param_3)" ( (binary_expression "uVar4 < *(uint *)param_3" identifier < (pointer_expression "*(uint *)param_3" * (cast_expression "(uint *)param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) || (parenthesized_expression "((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))" ( (parenthesized_expression "(*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3))" ( (binary_expression "*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)" (binary_expression "*(uint *)param_3 == uVar4" (pointer_expression "*(uint *)param_3" * (cast_expression "(uint *)param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) && (parenthesized_expression "((uint)uVar9 < (uint)*param_3)" ( (binary_expression "(uint)uVar9 < (uint)*param_3" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) < (binary_expression "(uint)*param_3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))) )) ))) )) (compound_statement "{\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }" { (expression_statement "*param_2 = pOVar8;" (assignment_expression "*param_2 = pOVar8" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "*param_3 = uVar9;" (assignment_expression "*param_3 = uVar9" (pointer_expression "*param_3" * identifier) = identifier) ;) })) })) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 4) != puVar7)" ( (binary_expression "*(undefined4 **)(param_1 + 4) != puVar7" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(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: void lowest_load_address_in_list(Output_segment * this,\n   Output_data_list * pdl, Output_section * * found, uint64_t * found_lma) */\n\nvoid __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,Output_data_list *pdl,Output_section **found,uint64_t *found_lma)\n\n{\n  Output_data_list *pOVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint in_v1;\n  Output_section *pOVar6;\n  Output_segment *this_00;\n  undefined *puVar7;\n  pointer ppOVar8;\n  Output_segment *pdl_00;\n  Output_section *pOVar9;\n  _func_int_varargs *p_Var10;\n  code *pcVar11;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  Output_section *apOStack_60 [3];\n  pointer ppOStack_54;\n  Output_section *pOStack_50;\n  uint64_t *puStack_4c;\n  Output_data_list *pOStack_48;\n  Output_section **ppOStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  \n  puVar3 = PTR_do_load_address_004c3c4c;\n  puVar2 = PTR_do_has_load_address_004c213c;\n  ppOVar8 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;\n  if (ppOVar8 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    do {\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8);\n  }\n  return;\n}\n\n" comment comment comment (function_definition "void __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,Output_data_list *pdl,Output_section **found,uint64_t *found_lma)\n\n{\n  Output_data_list *pOVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint in_v1;\n  Output_section *pOVar6;\n  Output_segment *this_00;\n  undefined *puVar7;\n  pointer ppOVar8;\n  Output_segment *pdl_00;\n  Output_section *pOVar9;\n  _func_int_varargs *p_Var10;\n  code *pcVar11;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  Output_section *apOStack_60 [3];\n  pointer ppOStack_54;\n  Output_section *pOStack_50;\n  uint64_t *puStack_4c;\n  Output_data_list *pOStack_48;\n  Output_section **ppOStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  \n  puVar3 = PTR_do_load_address_004c3c4c;\n  puVar2 = PTR_do_has_load_address_004c213c;\n  ppOVar8 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;\n  if (ppOVar8 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    do {\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "lowest_load_address_in_list\n          (Output_segment *this,Output_data_list *pdl,Output_section **found,uint64_t *found_lma)" identifier (parameter_list "(Output_segment *this,Output_data_list *pdl,Output_section **found,uint64_t *found_lma)" ( (parameter_declaration "Output_segment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_data_list *pdl" type_identifier (pointer_declarator "*pdl" * identifier)) , (parameter_declaration "Output_section **found" type_identifier (pointer_declarator "**found" * (pointer_declarator "*found" * identifier))) , (parameter_declaration "uint64_t *found_lma" primitive_type (pointer_declarator "*found_lma" * identifier)) ))) (compound_statement "{\n  Output_data_list *pOVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint in_v1;\n  Output_section *pOVar6;\n  Output_segment *this_00;\n  undefined *puVar7;\n  pointer ppOVar8;\n  Output_segment *pdl_00;\n  Output_section *pOVar9;\n  _func_int_varargs *p_Var10;\n  code *pcVar11;\n  undefined4 uStack_68;\n  undefined4 uStack_64;\n  Output_section *apOStack_60 [3];\n  pointer ppOStack_54;\n  Output_section *pOStack_50;\n  uint64_t *puStack_4c;\n  Output_data_list *pOStack_48;\n  Output_section **ppOStack_44;\n  undefined *puStack_40;\n  code *pcStack_3c;\n  \n  puVar3 = PTR_do_load_address_004c3c4c;\n  puVar2 = PTR_do_has_load_address_004c213c;\n  ppOVar8 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;\n  if (ppOVar8 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    do {\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8);\n  }\n  return;\n}" { (declaration "Output_data_list *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint in_v1;" type_identifier identifier ;) (declaration "Output_section *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "Output_segment *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "pointer ppOVar8;" type_identifier identifier ;) (declaration "Output_segment *pdl_00;" type_identifier (pointer_declarator "*pdl_00" * identifier) ;) (declaration "Output_section *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "_func_int_varargs *p_Var10;" type_identifier (pointer_declarator "*p_Var10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "undefined4 uStack_64;" type_identifier identifier ;) (declaration "Output_section *apOStack_60 [3];" type_identifier (pointer_declarator "*apOStack_60 [3]" * (array_declarator "apOStack_60 [3]" identifier [ number_literal ])) ;) (declaration "pointer ppOStack_54;" type_identifier identifier ;) (declaration "Output_section *pOStack_50;" type_identifier (pointer_declarator "*pOStack_50" * identifier) ;) (declaration "uint64_t *puStack_4c;" primitive_type (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "Output_data_list *pOStack_48;" type_identifier (pointer_declarator "*pOStack_48" * identifier) ;) (declaration "Output_section **ppOStack_44;" type_identifier (pointer_declarator "**ppOStack_44" * (pointer_declarator "*ppOStack_44" * identifier)) ;) (declaration "undefined *puStack_40;" type_identifier (pointer_declarator "*puStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (expression_statement "puVar3 = PTR_do_load_address_004c3c4c;" (assignment_expression "puVar3 = PTR_do_load_address_004c3c4c" identifier = identifier) ;) (expression_statement "puVar2 = PTR_do_has_load_address_004c213c;" (assignment_expression "puVar2 = PTR_do_has_load_address_004c213c" identifier = identifier) ;) (expression_statement "ppOVar8 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start;" (assignment_expression "ppOVar8 = (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start" identifier = (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl._M_start" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n            _M_impl" (parenthesized_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (ERROR "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "pdl->super__Vector_base<gold::Output_data*,_std" (binary_expression "pdl->super__Vector_base<gold::Output_data*" (binary_expression "pdl->super__Vector_base<gold" (field_expression "pdl->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Output_data*>_>" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (ppOVar8 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish) {\n    do {\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8);\n  }" if (parenthesized_expression "(ppOVar8 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish)" ( (binary_expression "ppOVar8 !=\n      (pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish" identifier != (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl.\n      _M_finish" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)._M_impl" (parenthesized_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std" (binary_expression "pdl->super__Vector_base<gold" (field_expression "pdl->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    do {\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8);\n  }" { (do_statement "do {\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    } while ((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8);" do (compound_statement "{\n      iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);\n      if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }\n      ppOVar8 = ppOVar8 + 1;\n    }" { (expression_statement "iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8);" (assignment_expression "iVar4 = (*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8)" identifier = (call_expression "(*(*ppOVar8)->_vptr_Output_data[6])(*ppOVar8)" (parenthesized_expression "(*(*ppOVar8)->_vptr_Output_data[6])" ( (pointer_expression "*(*ppOVar8)->_vptr_Output_data[6]" * (subscript_expression "(*ppOVar8)->_vptr_Output_data[6]" (field_expression "(*ppOVar8)->_vptr_Output_data" (parenthesized_expression "(*ppOVar8)" ( (pointer_expression "*ppOVar8" * identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "(*ppOVar8)" ( (pointer_expression "*ppOVar8" * identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        pOVar9 = (Output_section *)*ppOVar8;\n        p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];\n        if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }\n        if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }\n        if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }\n      }" { (expression_statement "pOVar9 = (Output_section *)*ppOVar8;" (assignment_expression "pOVar9 = (Output_section *)*ppOVar8" identifier = (cast_expression "(Output_section *)*ppOVar8" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*ppOVar8" * identifier))) ;) (expression_statement "p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4];" (assignment_expression "p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[4]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[4]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var10 == (_func_int_varargs *)puVar2) {\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }\n        else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }" if (parenthesized_expression "(p_Var10 == (_func_int_varargs *)puVar2)" ( (binary_expression "p_Var10 == (_func_int_varargs *)puVar2" identifier == (cast_expression "(_func_int_varargs *)puVar2" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;\n        }" { (expression_statement "uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f;" (assignment_expression "uVar5 = (uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f" identifier = (binary_expression "(uint)(*(int *)&pOVar9->field_0x98 << 7) >> 0x1f" (call_expression "(uint)(*(int *)&pOVar9->field_0x98 << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)&pOVar9->field_0x98 << 7)" ( (binary_expression "*(int *)&pOVar9->field_0x98 << 7" (pointer_expression "*(int *)&pOVar9->field_0x98" * (cast_expression "(int *)&pOVar9->field_0x98" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->field_0x98" & (field_expression "pOVar9->field_0x98" identifier -> field_identifier)))) << number_literal) ))) >> number_literal)) ;) }) (else_clause "else {\n          uVar5 = (*p_Var10)(pOVar9);\n        }" else (compound_statement "{\n          uVar5 = (*p_Var10)(pOVar9);\n        }" { (expression_statement "uVar5 = (*p_Var10)(pOVar9);" (assignment_expression "uVar5 = (*p_Var10)(pOVar9)" identifier = (call_expression "(*p_Var10)(pOVar9)" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "(pOVar9)" ( identifier )))) ;) }))) (if_statement "if (uVar5 == 0) {\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }\n        else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar7 = PTR_s_in_a_linker_script_004c191c;\n          if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }\n          uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;\n          in_v1 = (uint)(pOVar9->super_Output_data).address_;\nLAB_00218a40:\n          pOVar6 = *found;\n        }" { (expression_statement "puVar7 = PTR_s_in_a_linker_script_004c191c;" (assignment_expression "puVar7 = PTR_s_in_a_linker_script_004c191c" identifier = identifier) ;) (if_statement "if (-1 < *(int *)&(pOVar9->super_Output_data).field_0x20) {\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }" if (parenthesized_expression "(-1 < *(int *)&(pOVar9->super_Output_data).field_0x20)" ( (binary_expression "-1 < *(int *)&(pOVar9->super_Output_data).field_0x20" number_literal < (pointer_expression "*(int *)&(pOVar9->super_Output_data).field_0x20" * (cast_expression "(int *)&(pOVar9->super_Output_data).field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar9->super_Output_data).field_0x20" & (field_expression "(pOVar9->super_Output_data).field_0x20" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) )) (compound_statement "{\nLAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;\n            this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);\n            (*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);\n            puStack_40 = puVar2;\n            uStack_64 = 0;\n            uStack_68 = 0;\n            apOStack_60[0] = (Output_section *)0x0;\n            pdl_00 = this_00;\n            ppOStack_54 = ppOVar8;\n            pOStack_50 = pOVar9;\n            puStack_4c = found_lma;\n            pOStack_48 = pdl;\n            ppOStack_44 = found;\n            pcStack_3c = pcVar11;\n            do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);\n            return;\n          }" { (labeled_statement "LAB_00218b4c:\n            pcVar11 = section_with_lowest_load_address;" statement_identifier : (expression_statement "pcVar11 = section_with_lowest_load_address;" (assignment_expression "pcVar11 = section_with_lowest_load_address" identifier = identifier) ;)) (expression_statement "this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574);" (assignment_expression "this_00 = (Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" identifier = (cast_expression "(Output_segment *)(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -0x2a40);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(this_00,0xc5,puVar7 + -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 "(this_00,0xc5,puVar7 + -0x2a40)" ( identifier , number_literal , (binary_expression "puVar7 + -0x2a40" identifier + number_literal) ))) ;) (expression_statement "puStack_40 = puVar2;" (assignment_expression "puStack_40 = puVar2" identifier = identifier) ;) (expression_statement "uStack_64 = 0;" (assignment_expression "uStack_64 = 0" identifier = number_literal) ;) (expression_statement "uStack_68 = 0;" (assignment_expression "uStack_68 = 0" identifier = number_literal) ;) (expression_statement "apOStack_60[0] = (Output_section *)0x0;" (assignment_expression "apOStack_60[0] = (Output_section *)0x0" (subscript_expression "apOStack_60[0]" identifier [ number_literal ]) = (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdl_00 = this_00;" (assignment_expression "pdl_00 = this_00" identifier = identifier) ;) (expression_statement "ppOStack_54 = ppOVar8;" (assignment_expression "ppOStack_54 = ppOVar8" identifier = identifier) ;) (expression_statement "pOStack_50 = pOVar9;" (assignment_expression "pOStack_50 = pOVar9" identifier = identifier) ;) (expression_statement "puStack_4c = found_lma;" (assignment_expression "puStack_4c = found_lma" identifier = identifier) ;) (expression_statement "pOStack_48 = pdl;" (assignment_expression "pOStack_48 = pdl" identifier = identifier) ;) (expression_statement "ppOStack_44 = found;" (assignment_expression "ppOStack_44 = found" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar11;" (assignment_expression "pcStack_3c = pcVar11" identifier = identifier) ;) (do_statement "do {\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            } while ((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c);" do (compound_statement "{\n              pOVar1 = pdl_00->output_lists_;\n              lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);\n              pdl_00 = (Output_segment *)(pOVar1 + 1);\n            }" { (expression_statement "pOVar1 = pdl_00->output_lists_;" (assignment_expression "pOVar1 = pdl_00->output_lists_" identifier = (field_expression "pdl_00->output_lists_" identifier -> field_identifier)) ;) (expression_statement "lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68);" (call_expression "lowest_load_address_in_list\n                        (this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68)" identifier (argument_list "(this_00,pdl_00->output_lists_,apOStack_60,(uint64_t *)&uStack_68)" ( identifier , (field_expression "pdl_00->output_lists_" identifier -> field_identifier) , identifier , (cast_expression "(uint64_t *)&uStack_68" ( (type_descriptor "uint64_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_68" & identifier)) ))) ;) (expression_statement "pdl_00 = (Output_segment *)(pOVar1 + 1);" (assignment_expression "pdl_00 = (Output_segment *)(pOVar1 + 1)" identifier = (cast_expression "(Output_segment *)(pOVar1 + 1)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar1 + 1)" ( (binary_expression "pOVar1 + 1" identifier + number_literal) )))) ;) }) while (parenthesized_expression "((Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c)" ( (binary_expression "(Output_segment *)(pOVar1 + 1) != (Output_segment *)&this_00->field_0x15c" (cast_expression "(Output_segment *)(pOVar1 + 1)" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar1 + 1)" ( (binary_expression "pOVar1 + 1" identifier + number_literal) ))) != (cast_expression "(Output_segment *)&this_00->field_0x15c" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this_00->field_0x15c" & (field_expression "this_00->field_0x15c" identifier -> field_identifier)))) )) ;) (return_statement "return;" return ;) })) (expression_statement "uVar5 = *(uint *)&(pOVar9->super_Output_data).address_;" (assignment_expression "uVar5 = *(uint *)&(pOVar9->super_Output_data).address_" identifier = (pointer_expression "*(uint *)&(pOVar9->super_Output_data).address_" * (cast_expression "(uint *)&(pOVar9->super_Output_data).address_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar9->super_Output_data).address_" & (field_expression "(pOVar9->super_Output_data).address_" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "in_v1 = (uint)(pOVar9->super_Output_data).address_;" (assignment_expression "in_v1 = (uint)(pOVar9->super_Output_data).address_" identifier = (field_expression "(uint)(pOVar9->super_Output_data).address_" (call_expression "(uint)(pOVar9->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (labeled_statement "LAB_00218a40:\n          pOVar6 = *found;" statement_identifier : (expression_statement "pOVar6 = *found;" (assignment_expression "pOVar6 = *found" identifier = (pointer_expression "*found" * identifier)) ;)) }) (else_clause "else {\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }" else (compound_statement "{\n          p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];\n          if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }\n          uVar5 = (*p_Var10)(pOVar9);\n          pOVar6 = *found;\n        }" { (expression_statement "p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5];" (assignment_expression "p_Var10 = (pOVar9->super_Output_data)._vptr_Output_data[5]" identifier = (subscript_expression "(pOVar9->super_Output_data)._vptr_Output_data[5]" (field_expression "(pOVar9->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar9->super_Output_data)" ( (field_expression "pOVar9->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var10 == (_func_int_varargs *)puVar3) {\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }" if (parenthesized_expression "(p_Var10 == (_func_int_varargs *)puVar3)" ( (binary_expression "p_Var10 == (_func_int_varargs *)puVar3" identifier == (cast_expression "(_func_int_varargs *)puVar3" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }\n            uVar5 = *(uint *)&pOVar9->load_address_;\n            in_v1 = (uint)pOVar9->load_address_;\n            goto LAB_00218a40;\n          }" { (if_statement "if (-1 < *(int *)&pOVar9->field_0x98 << 7) {\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }" if (parenthesized_expression "(-1 < *(int *)&pOVar9->field_0x98 << 7)" ( (binary_expression "-1 < *(int *)&pOVar9->field_0x98 << 7" number_literal < (binary_expression "*(int *)&pOVar9->field_0x98 << 7" (pointer_expression "*(int *)&pOVar9->field_0x98" * (cast_expression "(int *)&pOVar9->field_0x98" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->field_0x98" & (field_expression "pOVar9->field_0x98" identifier -> field_identifier)))) << number_literal)) )) (compound_statement "{\n              puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);\n              goto LAB_00218b4c;\n            }" { (expression_statement "puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac;" (assignment_expression "puVar7 = PTR_s_in_a_linker_script_004c191c + -0x32ac" identifier = (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32ac" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,puVar7)" (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,&DAT_0000107b,puVar7)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , (pointer_expression "&DAT_0000107b" & identifier) , identifier ))) ;) (goto_statement "goto LAB_00218b4c;" goto statement_identifier ;) })) (expression_statement "uVar5 = *(uint *)&pOVar9->load_address_;" (assignment_expression "uVar5 = *(uint *)&pOVar9->load_address_" identifier = (pointer_expression "*(uint *)&pOVar9->load_address_" * (cast_expression "(uint *)&pOVar9->load_address_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->load_address_" & (field_expression "pOVar9->load_address_" identifier -> field_identifier))))) ;) (expression_statement "in_v1 = (uint)pOVar9->load_address_;" (assignment_expression "in_v1 = (uint)pOVar9->load_address_" identifier = (cast_expression "(uint)pOVar9->load_address_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar9->load_address_" identifier -> field_identifier))) ;) (goto_statement "goto LAB_00218a40;" goto statement_identifier ;) })) (expression_statement "uVar5 = (*p_Var10)(pOVar9);" (assignment_expression "uVar5 = (*p_Var10)(pOVar9)" identifier = (call_expression "(*p_Var10)(pOVar9)" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "(pOVar9)" ( identifier )))) ;) (expression_statement "pOVar6 = *found;" (assignment_expression "pOVar6 = *found" identifier = (pointer_expression "*found" * identifier)) ;) }))) (if_statement "if (((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))) {\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }" if (parenthesized_expression "(((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma))))" ( (binary_expression "((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)) ||\n           ((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))" (parenthesized_expression "((pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma))" ( (binary_expression "(pOVar6 == (Output_section *)0x0) || (uVar5 < *(uint *)found_lma)" (parenthesized_expression "(pOVar6 == (Output_section *)0x0)" ( (binary_expression "pOVar6 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar5 < *(uint *)found_lma)" ( (binary_expression "uVar5 < *(uint *)found_lma" identifier < (pointer_expression "*(uint *)found_lma" * (cast_expression "(uint *)found_lma" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) || (parenthesized_expression "((*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)))" ( (parenthesized_expression "(*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma))" ( (binary_expression "*(uint *)found_lma == uVar5 && (in_v1 < (uint)*found_lma)" (binary_expression "*(uint *)found_lma == uVar5" (pointer_expression "*(uint *)found_lma" * (cast_expression "(uint *)found_lma" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) && (parenthesized_expression "(in_v1 < (uint)*found_lma)" ( (binary_expression "in_v1 < (uint)*found_lma" identifier < (binary_expression "(uint)*found_lma" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))) )) ))) )) (compound_statement "{\n          *found = pOVar9;\n          *(uint *)found_lma = uVar5;\n          *(uint *)((int)found_lma + 4) = in_v1;\n        }" { (expression_statement "*found = pOVar9;" (assignment_expression "*found = pOVar9" (pointer_expression "*found" * identifier) = identifier) ;) (expression_statement "*(uint *)found_lma = uVar5;" (assignment_expression "*(uint *)found_lma = uVar5" (pointer_expression "*(uint *)found_lma" * (cast_expression "(uint *)found_lma" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(uint *)((int)found_lma + 4) = in_v1;" (assignment_expression "*(uint *)((int)found_lma + 4) = in_v1" (pointer_expression "*(uint *)((int)found_lma + 4)" * (cast_expression "(uint *)((int)found_lma + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)found_lma + 4)" ( (binary_expression "(int)found_lma + 4" (cast_expression "(int)found_lma" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) })) })) (expression_statement "ppOVar8 = ppOVar8 + 1;" (assignment_expression "ppOVar8 = ppOVar8 + 1" identifier = (binary_expression "ppOVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8)" ( (binary_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish != ppOVar8" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl._M_finish" (field_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>).\n             _M_impl" (parenthesized_expression "(pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>)" ( (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pdl->super__Vector_base<gold::Output_data*,_std" (binary_expression "pdl->super__Vector_base<gold" (field_expression "pdl->super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}\n\n" (function_definition "void __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Output_segment::" identifier : : identifier : :) (function_declarator "lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)" identifier (parameter_list "(Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)" ( (parameter_declaration "Output_segment *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "vector *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Output_section **param_2" type_identifier (pointer_declarator "**param_2" * (pointer_declarator "*param_2" * identifier))) , (parameter_declaration "ulonglong *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "Output_section *pOVar6;" type_identifier (pointer_declarator "*pOVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "Output_section *pOVar8;" type_identifier (pointer_declarator "*pOVar8" * identifier) ;) (declaration "ulonglong uVar9;" type_identifier identifier ;) (expression_statement "puVar2 = PTR_do_load_address_004c3c4c;" (assignment_expression "puVar2 = PTR_do_load_address_004c3c4c" identifier = identifier) ;) (expression_statement "puVar1 = PTR_do_has_load_address_004c213c;" (assignment_expression "puVar1 = PTR_do_has_load_address_004c213c" identifier = identifier) ;) (expression_statement "puVar7 = *(undefined4 **)param_1;" (assignment_expression "puVar7 = *(undefined4 **)param_1" identifier = (pointer_expression "*(undefined4 **)param_1" * (cast_expression "(undefined4 **)param_1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }" if (parenthesized_expression "(puVar7 != *(undefined4 **)(param_1 + 4))" ( (binary_expression "puVar7 != *(undefined4 **)(param_1 + 4)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }" { (do_statement "do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);" do (compound_statement "{\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    }" { (expression_statement "iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);" (assignment_expression "iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" identifier = (call_expression "(**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x18))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 0x18)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 0x18)" * (cast_expression "(code **)(*(int *)*puVar7 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0x18)" ( (binary_expression "*(int *)*puVar7 + 0x18" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) )))) ;) (if_statement "if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }" { (expression_statement "pOVar8 = (Output_section *)*puVar7;" (assignment_expression "pOVar8 = (Output_section *)*puVar7" identifier = (cast_expression "(Output_section *)*puVar7" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (if_statement "if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" if (parenthesized_expression "(*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1)" ( (binary_expression "*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1" (pointer_expression "*(code **)(*(int *)pOVar8 + 0x10)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x10)" ( (binary_expression "*(int *)pOVar8 + 0x10" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }" { (expression_statement "uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;" (assignment_expression "uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f" identifier = (binary_expression "(uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f" (call_expression "(uint)(*(int *)(pOVar8 + 0x98) << 7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(pOVar8 + 0x98) << 7)" ( (binary_expression "*(int *)(pOVar8 + 0x98) << 7" (pointer_expression "*(int *)(pOVar8 + 0x98)" * (cast_expression "(int *)(pOVar8 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x98)" ( (binary_expression "pOVar8 + 0x98" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) }) (else_clause "else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" else (compound_statement "{\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" { (expression_statement "uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);" (assignment_expression "uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8)" identifier = (call_expression "(**(code **)(*(int *)pOVar8 + 0x10))(pOVar8)" (parenthesized_expression "(**(code **)(*(int *)pOVar8 + 0x10))" ( (pointer_expression "**(code **)(*(int *)pOVar8 + 0x10)" * (pointer_expression "*(code **)(*(int *)pOVar8 + 0x10)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x10)" ( (binary_expression "*(int *)pOVar8 + 0x10" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pOVar8)" ( identifier )))) ;) }))) (if_statement "if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }" { (if_statement "if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }" if (parenthesized_expression "(-1 < *(int *)(pOVar8 + 0x20))" ( (binary_expression "-1 < *(int *)(pOVar8 + 0x20)" number_literal < (pointer_expression "*(int *)(pOVar8 + 0x20)" * (cast_expression "(int *)(pOVar8 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x20)" ( (binary_expression "pOVar8 + 0x20" identifier + number_literal) ))))) )) (compound_statement "{\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            return;\n          }" { (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) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = *(int *)(pOVar8 + 8);" (assignment_expression "iVar3 = *(int *)(pOVar8 + 8)" identifier = (pointer_expression "*(int *)(pOVar8 + 8)" * (cast_expression "(int *)(pOVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 8)" ( (binary_expression "pOVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pOVar8 + 0xc);" (assignment_expression "iVar5 = *(int *)(pOVar8 + 0xc)" identifier = (pointer_expression "*(int *)(pOVar8 + 0xc)" * (cast_expression "(int *)(pOVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0xc)" ( (binary_expression "pOVar8 + 0xc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);" statement_identifier : (expression_statement "uVar9 = CONCAT44(iVar3,iVar5);" (assignment_expression "uVar9 = CONCAT44(iVar3,iVar5)" identifier = (call_expression "CONCAT44(iVar3,iVar5)" identifier (argument_list "(iVar3,iVar5)" ( identifier , identifier )))) ;)) (expression_statement "pOVar6 = *param_2;" (assignment_expression "pOVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }) (else_clause "else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" else (compound_statement "{\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" { (if_statement "if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }" if (parenthesized_expression "(*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2)" ( (binary_expression "*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2" (pointer_expression "*(code **)(*(int *)pOVar8 + 0x14)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x14)" ( (binary_expression "*(int *)pOVar8 + 0x14" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }" { (if_statement "if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }" if (parenthesized_expression "(-1 < *(int *)(pOVar8 + 0x98) << 7)" ( (binary_expression "-1 < *(int *)(pOVar8 + 0x98) << 7" number_literal < (binary_expression "*(int *)(pOVar8 + 0x98) << 7" (pointer_expression "*(int *)(pOVar8 + 0x98)" * (cast_expression "(int *)(pOVar8 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x98)" ( (binary_expression "pOVar8 + 0x98" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac)" (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,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , (pointer_expression "&DAT_0000107b" & identifier) , (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32ac" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar3 = *(int *)(pOVar8 + 0x38);" (assignment_expression "iVar3 = *(int *)(pOVar8 + 0x38)" identifier = (pointer_expression "*(int *)(pOVar8 + 0x38)" * (cast_expression "(int *)(pOVar8 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x38)" ( (binary_expression "pOVar8 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pOVar8 + 0x3c);" (assignment_expression "iVar5 = *(int *)(pOVar8 + 0x3c)" identifier = (pointer_expression "*(int *)(pOVar8 + 0x3c)" * (cast_expression "(int *)(pOVar8 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pOVar8 + 0x3c)" ( (binary_expression "pOVar8 + 0x3c" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00218a40;" goto statement_identifier ;) })) (expression_statement "uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);" (assignment_expression "uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8)" identifier = (call_expression "(**(code **)(*(int *)pOVar8 + 0x14))(pOVar8)" (parenthesized_expression "(**(code **)(*(int *)pOVar8 + 0x14))" ( (pointer_expression "**(code **)(*(int *)pOVar8 + 0x14)" * (pointer_expression "*(code **)(*(int *)pOVar8 + 0x14)" * (cast_expression "(code **)(*(int *)pOVar8 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pOVar8 + 0x14)" ( (binary_expression "*(int *)pOVar8 + 0x14" (pointer_expression "*(int *)pOVar8" * (cast_expression "(int *)pOVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pOVar8)" ( identifier )))) ;) (expression_statement "pOVar6 = *param_2;" (assignment_expression "pOVar6 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) }))) (expression_statement "uVar4 = (uint)(uVar9 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar9 >> 0x20)" identifier = (call_expression "(uint)(uVar9 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 >> 0x20)" ( (binary_expression "uVar9 >> 0x20" identifier >> number_literal) )))) ;) (if_statement "if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }" if (parenthesized_expression "(((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3))))" ( (binary_expression "((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))" (parenthesized_expression "((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3))" ( (binary_expression "(pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)" (parenthesized_expression "(pOVar6 == (Output_section *)0x0)" ( (binary_expression "pOVar6 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar4 < *(uint *)param_3)" ( (binary_expression "uVar4 < *(uint *)param_3" identifier < (pointer_expression "*(uint *)param_3" * (cast_expression "(uint *)param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) || (parenthesized_expression "((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))" ( (parenthesized_expression "(*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3))" ( (binary_expression "*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)" (binary_expression "*(uint *)param_3 == uVar4" (pointer_expression "*(uint *)param_3" * (cast_expression "(uint *)param_3" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) && (parenthesized_expression "((uint)uVar9 < (uint)*param_3)" ( (binary_expression "(uint)uVar9 < (uint)*param_3" (cast_expression "(uint)uVar9" ( (type_descriptor "uint" type_identifier) ) identifier) < (binary_expression "(uint)*param_3" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))) )) ))) )) (compound_statement "{\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }" { (expression_statement "*param_2 = pOVar8;" (assignment_expression "*param_2 = pOVar8" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "*param_3 = uVar9;" (assignment_expression "*param_3 = uVar9" (pointer_expression "*param_3" * identifier) = identifier) ;) })) })) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 4) != puVar7)" ( (binary_expression "*(undefined4 **)(param_1 + 4) != puVar7" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (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) ))) ;) (return_statement return ;) })) (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) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void __thiscall\ngold::Output_segment::lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)\n\n{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Output_segment::" (identifier "gold") (: ":") (: ":") (identifier "Output_segment") (: ":") (: ":")) (function_declarator "lowest_load_address_in_list\n          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)" (identifier "lowest_load_address_in_list") (parameter_list "(Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)" (( "(") (parameter_declaration "Output_segment *this" (type_identifier "Output_segment") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "vector *param_1" (type_identifier "vector") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Output_section **param_2" (type_identifier "Output_section") (pointer_declarator "**param_2" (* "*") (pointer_declarator "*param_2" (* "*") (identifier "param_2")))) (, ",") (parameter_declaration "ulonglong *param_3" (type_identifier "ulonglong") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined *puVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  Output_section *pOVar6;\n  undefined4 *puVar7;\n  Output_section *pOVar8;\n  ulonglong uVar9;\n  \n  puVar2 = PTR_do_load_address_004c3c4c;\n  puVar1 = PTR_do_has_load_address_004c213c;\n  puVar7 = *(undefined4 **)param_1;\n  if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "Output_section *pOVar6;" (type_identifier "Output_section") (pointer_declarator "*pOVar6" (* "*") (identifier "pOVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "Output_section *pOVar8;" (type_identifier "Output_section") (pointer_declarator "*pOVar8" (* "*") (identifier "pOVar8")) (; ";")) (declaration "ulonglong uVar9;" (type_identifier "ulonglong") (identifier "uVar9") (; ";")) (expression_statement "puVar2 = PTR_do_load_address_004c3c4c;" (assignment_expression "puVar2 = PTR_do_load_address_004c3c4c" (identifier "puVar2") (= "=") (identifier "PTR_do_load_address_004c3c4c")) (; ";")) (expression_statement "puVar1 = PTR_do_has_load_address_004c213c;" (assignment_expression "puVar1 = PTR_do_has_load_address_004c213c" (identifier "puVar1") (= "=") (identifier "PTR_do_has_load_address_004c213c")) (; ";")) (expression_statement "puVar7 = *(undefined4 **)param_1;" (assignment_expression "puVar7 = *(undefined4 **)param_1" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)param_1" (* "*") (cast_expression "(undefined4 **)param_1" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (if_statement "if (puVar7 != *(undefined4 **)(param_1 + 4)) {\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }" (if "if") (parenthesized_expression "(puVar7 != *(undefined4 **)(param_1 + 4))" (( "(") (binary_expression "puVar7 != *(undefined4 **)(param_1 + 4)" (identifier "puVar7") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);\n  }" ({ "{") (do_statement "do {\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    } while (*(undefined4 **)(param_1 + 4) != puVar7);" (do "do") (compound_statement "{\n      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);\n      if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }\n      puVar7 = puVar7 + 1;\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);" (assignment_expression "iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 0x18))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar7 + 0x18)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar7 + 0x18)" (* "*") (cast_expression "(code **)(*(int *)*puVar7 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar7 + 0x18)" (( "(") (binary_expression "*(int *)*puVar7 + 0x18" (pointer_expression "*(int *)*puVar7" (* "*") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "((int *)*puVar7)" (( "(") (cast_expression "(int *)*puVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pOVar8 = (Output_section *)*puVar7;\n        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }\n        if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }\n        uVar4 = (uint)(uVar9 >> 0x20);\n        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }\n      }" ({ "{") (expression_statement "pOVar8 = (Output_section *)*puVar7;" (assignment_expression "pOVar8 = (Output_section *)*puVar7" (identifier "pOVar8") (= "=") (cast_expression "(Output_section *)*puVar7" (( "(") (type_descriptor "Output_section *" (type_identifier "Output_section") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")))) (; ";")) (if_statement "if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }\n        else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" (if "if") (parenthesized_expression "(*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1)" (( "(") (binary_expression "*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1" (pointer_expression "*(code **)(*(int *)pOVar8 + 0x10)" (* "*") (cast_expression "(code **)(*(int *)pOVar8 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pOVar8 + 0x10)" (( "(") (binary_expression "*(int *)pOVar8 + 0x10" (pointer_expression "*(int *)pOVar8" (* "*") (cast_expression "(int *)pOVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar8"))) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (compound_statement "{\n          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;\n        }" ({ "{") (expression_statement "uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;" (assignment_expression "uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f" (identifier "uVar4") (= "=") (binary_expression "(uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f" (call_expression "(uint)(*(int *)(pOVar8 + 0x98) << 7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(pOVar8 + 0x98) << 7)" (( "(") (binary_expression "*(int *)(pOVar8 + 0x98) << 7" (pointer_expression "*(int *)(pOVar8 + 0x98)" (* "*") (cast_expression "(int *)(pOVar8 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x98)" (( "(") (binary_expression "pOVar8 + 0x98" (identifier "pOVar8") (+ "+") (number_literal "0x98")) () ")")))) (<< "<<") (number_literal "7")) () ")"))) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}")) (else_clause "else {\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" (else "else") (compound_statement "{\n          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);\n        }" ({ "{") (expression_statement "uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);" (assignment_expression "uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(*(int *)pOVar8 + 0x10))(pOVar8)" (parenthesized_expression "(**(code **)(*(int *)pOVar8 + 0x10))" (( "(") (pointer_expression "**(code **)(*(int *)pOVar8 + 0x10)" (* "*") (pointer_expression "*(code **)(*(int *)pOVar8 + 0x10)" (* "*") (cast_expression "(code **)(*(int *)pOVar8 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pOVar8 + 0x10)" (( "(") (binary_expression "*(int *)pOVar8 + 0x10" (pointer_expression "*(int *)pOVar8" (* "*") (cast_expression "(int *)pOVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar8"))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(pOVar8)" (( "(") (identifier "pOVar8") () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar4 == 0) {\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }\n        else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }\n          iVar3 = *(int *)(pOVar8 + 8);\n          iVar5 = *(int *)(pOVar8 + 0xc);\nLAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);\n          pOVar6 = *param_2;\n        }" ({ "{") (if_statement "if (-1 < *(int *)(pOVar8 + 0x20)) {\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            return;\n          }" (if "if") (parenthesized_expression "(-1 < *(int *)(pOVar8 + 0x20))" (( "(") (binary_expression "-1 < *(int *)(pOVar8 + 0x20)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(pOVar8 + 0x20)" (* "*") (cast_expression "(int *)(pOVar8 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x20)" (( "(") (binary_expression "pOVar8 + 0x20" (identifier "pOVar8") (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (compound_statement "{\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            return;\n          }" ({ "{") (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")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(pOVar8 + 8);" (assignment_expression "iVar3 = *(int *)(pOVar8 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pOVar8 + 8)" (* "*") (cast_expression "(int *)(pOVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 8)" (( "(") (binary_expression "pOVar8 + 8" (identifier "pOVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pOVar8 + 0xc);" (assignment_expression "iVar5 = *(int *)(pOVar8 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pOVar8 + 0xc)" (* "*") (cast_expression "(int *)(pOVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0xc)" (( "(") (binary_expression "pOVar8 + 0xc" (identifier "pOVar8") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (labeled_statement "LAB_00218a40:\n          uVar9 = CONCAT44(iVar3,iVar5);" (statement_identifier "LAB_00218a40") (: ":") (expression_statement "uVar9 = CONCAT44(iVar3,iVar5);" (assignment_expression "uVar9 = CONCAT44(iVar3,iVar5)" (identifier "uVar9") (= "=") (call_expression "CONCAT44(iVar3,iVar5)" (identifier "CONCAT44") (argument_list "(iVar3,iVar5)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar5") () ")")))) (; ";"))) (expression_statement "pOVar6 = *param_2;" (assignment_expression "pOVar6 = *param_2" (identifier "pOVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}")) (else_clause "else {\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" (else "else") (compound_statement "{\n          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }\n          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);\n          pOVar6 = *param_2;\n        }" ({ "{") (if_statement "if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }" (if "if") (parenthesized_expression "(*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2)" (( "(") (binary_expression "*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2" (pointer_expression "*(code **)(*(int *)pOVar8 + 0x14)" (* "*") (cast_expression "(code **)(*(int *)pOVar8 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pOVar8 + 0x14)" (( "(") (binary_expression "*(int *)pOVar8 + 0x14" (pointer_expression "*(int *)pOVar8" (* "*") (cast_expression "(int *)pOVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar8"))) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (compound_statement "{\n            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }\n            iVar3 = *(int *)(pOVar8 + 0x38);\n            iVar5 = *(int *)(pOVar8 + 0x3c);\n            goto LAB_00218a40;\n          }" ({ "{") (if_statement "if (-1 < *(int *)(pOVar8 + 0x98) << 7) {\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }" (if "if") (parenthesized_expression "(-1 < *(int *)(pOVar8 + 0x98) << 7)" (( "(") (binary_expression "-1 < *(int *)(pOVar8 + 0x98) << 7" (number_literal "-1") (< "<") (binary_expression "*(int *)(pOVar8 + 0x98) << 7" (pointer_expression "*(int *)(pOVar8 + 0x98)" (* "*") (cast_expression "(int *)(pOVar8 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x98)" (( "(") (binary_expression "pOVar8 + 0x98" (identifier "pOVar8") (+ "+") (number_literal "0x98")) () ")")))) (<< "<<") (number_literal "7"))) () ")")) (compound_statement "{\n              (*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);\n              return;\n            }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac)" (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,&DAT_0000107b,\n                         PTR_s_in_a_linker_script_004c191c + -0x32ac)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (pointer_expression "&DAT_0000107b" (& "&") (identifier "DAT_0000107b")) (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + -0x32ac" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "-0x32ac")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(pOVar8 + 0x38);" (assignment_expression "iVar3 = *(int *)(pOVar8 + 0x38)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pOVar8 + 0x38)" (* "*") (cast_expression "(int *)(pOVar8 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x38)" (( "(") (binary_expression "pOVar8 + 0x38" (identifier "pOVar8") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar5 = *(int *)(pOVar8 + 0x3c);" (assignment_expression "iVar5 = *(int *)(pOVar8 + 0x3c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(pOVar8 + 0x3c)" (* "*") (cast_expression "(int *)(pOVar8 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pOVar8 + 0x3c)" (( "(") (binary_expression "pOVar8 + 0x3c" (identifier "pOVar8") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (goto_statement "goto LAB_00218a40;" (goto "goto") (statement_identifier "LAB_00218a40") (; ";")) (} "}"))) (expression_statement "uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);" (assignment_expression "uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(*(int *)pOVar8 + 0x14))(pOVar8)" (parenthesized_expression "(**(code **)(*(int *)pOVar8 + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)pOVar8 + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)pOVar8 + 0x14)" (* "*") (cast_expression "(code **)(*(int *)pOVar8 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pOVar8 + 0x14)" (( "(") (binary_expression "*(int *)pOVar8 + 0x14" (pointer_expression "*(int *)pOVar8" (* "*") (cast_expression "(int *)pOVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pOVar8"))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(pOVar8)" (( "(") (identifier "pOVar8") () ")")))) (; ";")) (expression_statement "pOVar6 = *param_2;" (assignment_expression "pOVar6 = *param_2" (identifier "pOVar6") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}")))) (expression_statement "uVar4 = (uint)(uVar9 >> 0x20);" (assignment_expression "uVar4 = (uint)(uVar9 >> 0x20)" (identifier "uVar4") (= "=") (call_expression "(uint)(uVar9 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar9 >> 0x20)" (( "(") (binary_expression "uVar9 >> 0x20" (identifier "uVar9") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }" (if "if") (parenthesized_expression "(((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3))))" (( "(") (binary_expression "((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||\n           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))" (parenthesized_expression "((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3))" (( "(") (binary_expression "(pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)" (parenthesized_expression "(pOVar6 == (Output_section *)0x0)" (( "(") (binary_expression "pOVar6 == (Output_section *)0x0" (identifier "pOVar6") (== "==") (cast_expression "(Output_section *)0x0" (( "(") (type_descriptor "Output_section *" (type_identifier "Output_section") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar4 < *(uint *)param_3)" (( "(") (binary_expression "uVar4 < *(uint *)param_3" (identifier "uVar4") (< "<") (pointer_expression "*(uint *)param_3" (* "*") (cast_expression "(uint *)param_3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))" (( "(") (parenthesized_expression "(*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3))" (( "(") (binary_expression "*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)" (binary_expression "*(uint *)param_3 == uVar4" (pointer_expression "*(uint *)param_3" (* "*") (cast_expression "(uint *)param_3" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (== "==") (identifier "uVar4")) (&& "&&") (parenthesized_expression "((uint)uVar9 < (uint)*param_3)" (( "(") (binary_expression "(uint)uVar9 < (uint)*param_3" (cast_expression "(uint)uVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar9")) (< "<") (binary_expression "(uint)*param_3" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_3"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          *param_2 = pOVar8;\n          *param_3 = uVar9;\n        }" ({ "{") (expression_statement "*param_2 = pOVar8;" (assignment_expression "*param_2 = pOVar8" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "pOVar8")) (; ";")) (expression_statement "*param_3 = uVar9;" (assignment_expression "*param_3 = uVar9" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(param_1 + 4) != puVar7)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 4) != puVar7" (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "puVar7")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (do_statement body: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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)))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) 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))))))) consequence: (compound_statement (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))))) (return_statement))) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (number_literal) right: (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 (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)) (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) 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: (identifier) right: (number_literal))))) right: (identifier)))))) (return_statement))))

/* gold::Output_segment::MASKED(std::vector<gold::Output_data*,
   std::allocator<gold::Output_data*> > const*, gold::Output_section**, unsigned long long*) const
    */

void __thiscall
gold::Output_segment::MASKED
          (Output_segment *this,vector *param_1,Output_section **param_2,ulonglong *param_3)

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  Output_section *pOVar6;
  undefined4 *puVar7;
  Output_section *pOVar8;
  ulonglong uVar9;
  
  puVar2 = PTR_do_load_address_004c3c4c;
  puVar1 = PTR_do_has_load_address_004c213c;
  puVar7 = *(undefined4 **)param_1;
  if (puVar7 != *(undefined4 **)(param_1 + 4)) {
    do {
      iVar3 = (**(code **)(*(int *)*puVar7 + 0x18))((int *)*puVar7);
      if (iVar3 != 0) {
        pOVar8 = (Output_section *)*puVar7;
        if (*(code **)(*(int *)pOVar8 + 0x10) == (code *)puVar1) {
          uVar4 = (uint)(*(int *)(pOVar8 + 0x98) << 7) >> 0x1f;
        }
        else {
          uVar4 = (**(code **)(*(int *)pOVar8 + 0x10))(pOVar8);
        }
        if (uVar4 == 0) {
          if (-1 < *(int *)(pOVar8 + 0x20)) {
            (*(code *)PTR_do_gold_unreachable_004c1a30)
                      (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xc5,
                       PTR_s_in_a_linker_script_004c191c + -0x2a40);
            return;
          }
          iVar3 = *(int *)(pOVar8 + 8);
          iVar5 = *(int *)(pOVar8 + 0xc);
LAB_00218a40:
          uVar9 = CONCAT44(iVar3,iVar5);
          pOVar6 = *param_2;
        }
        else {
          if (*(code **)(*(int *)pOVar8 + 0x14) == (code *)puVar2) {
            if (-1 < *(int *)(pOVar8 + 0x98) << 7) {
              (*(code *)PTR_do_gold_unreachable_004c1a30)
                        (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,&DAT_0000107b,
                         PTR_s_in_a_linker_script_004c191c + -0x32ac);
              return;
            }
            iVar3 = *(int *)(pOVar8 + 0x38);
            iVar5 = *(int *)(pOVar8 + 0x3c);
            goto LAB_00218a40;
          }
          uVar9 = (**(code **)(*(int *)pOVar8 + 0x14))(pOVar8);
          pOVar6 = *param_2;
        }
        uVar4 = (uint)(uVar9 >> 0x20);
        if (((pOVar6 == (Output_section *)0x0) || (uVar4 < *(uint *)param_3)) ||
           ((*(uint *)param_3 == uVar4 && ((uint)uVar9 < (uint)*param_3)))) {
          *param_2 = pOVar8;
          *param_3 = uVar9;
        }
      }
      puVar7 = puVar7 + 1;
    } while (*(undefined4 **)(param_1 + 4) != puVar7);
  }
  return;
}

