
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void print_input_section(Mapfile * this, Relobj * relobj, uint shndx)
    */

void __thiscall gold::Mapfile::print_input_section(Mapfile *this,Relobj *relobj,uint shndx)

{
  _Rb_tree_header *p_Var1;
  _Base_ptr *pp_Var2;
  pointer ppOVar3;
  uint uVar4;
  Compressed_section_map *pCVar5;
  _Base_ptr p_Var6;
  _func_int_varargs **pp_Var7;
  int iVar8;
  Target_size_endianness TVar9;
  int iVar10;
  uint extraout_EDX;
  _Base_ptr p_Var11;
  _Base_ptr p_Var12;
  bool bVar13;
  uint local_7c;
  uint local_78;
  Output_section *local_74;
  string name;
  char sizebuf [50];
  
  putc(0x20,(FILE *)this->map_file_);
  (*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,shndx);
                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */
  fputs(name._M_dataplus._M_p,(FILE *)this->map_file_);
  advance_to_column(this,name._M_string_length + 1,0x10);
  ppOVar3 = (relobj->output_sections_).
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_start;
  if ((uint)((int)(relobj->output_sections_).
                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");
  }
  local_74 = ppOVar3[shndx];
  if (local_74 == (Output_section *)0x0) {
    pCVar5 = (relobj->super_Object).compressed_sections_;
    local_7c = 0;
    local_78 = 0;
  }
  else {
    pp_Var7 = (relobj->super_Object)._vptr_Object;
    if (pp_Var7[0x18] != Relobj::do_output_section) {
      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);
      pp_Var7 = (relobj->super_Object)._vptr_Object;
    }
    local_7c = (*pp_Var7[0x1a])(relobj,shndx);
    local_78 = extraout_EDX;
    if ((extraout_EDX & local_7c) != 0xffffffff) {
      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0xc5,"address");
      }
      uVar4 = (uint)(local_74->super_Output_data).address_;
      bVar13 = CARRY4(local_7c,uVar4);
      local_7c = local_7c + uVar4;
      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +
                 (uint)bVar13;
    }
    pCVar5 = (relobj->super_Object).compressed_sections_;
  }
  if (pCVar5 != (Compressed_section_map *)0x0) {
    p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;
    p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;
    p_Var11 = &p_Var1->_M_header;
    if (p_Var6 != (_Base_ptr)0x0) {
      do {
        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {
          pp_Var2 = &p_Var12->_M_right;
          p_Var6 = *pp_Var2;
          p_Var12 = p_Var11;
          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;
        }
        p_Var6 = p_Var12->_M_left;
        p_Var11 = p_Var12;
      } while (p_Var12->_M_left != (_Base_ptr)0x0);
LAB_000be005:
      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&
         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {
        iVar10 = *(int *)((int)p_Var12 + 0x14);
        goto LAB_000be019;
      }
    }
  }
  iVar10 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx);
LAB_000be019:
  snprintf(sizebuf,0x32,"0x%llx",iVar10,0);
  if (parameters->target_ == (Target *)0x0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x69,"target");
  }
  iVar10 = parameters->target_->pti_->size;
  iVar8 = iVar10 + 3;
  if (-1 < iVar10) {
    iVar8 = iVar10;
  }
  fprintf((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,
          (relobj->super_Object).name_._M_dataplus._M_p);
  if (local_74 != (Output_section *)0x0) {
    TVar9 = Parameters::size_and_endianness(parameters);
    if (TVar9 == TARGET_32_LITTLE) {
      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);
    }
    else {
      if (TVar9 != TARGET_64_LITTLE) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");
      }
      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);
    }
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)name._M_dataplus._M_p != &name.field_2) {
    operator_delete(name._M_dataplus._M_p);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  longlong lVar7;
  undefined4 local_7c;
  undefined4 local_78;
  int local_74;
  char *local_68;
  int local_64;
  char local_60 [18];
  char local_4e [62];
  
  putc(0x20,(FILE *)*param_1);
  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);
                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */
  fputs(local_68,(FILE *)*param_1);
  FUN_000bd900(param_1,local_64 + 1,0x10);
  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);
  }
  local_74 = *(int *)(param_2[0xe] + param_3 * 4);
  if (local_74 == 0) {
    iVar3 = param_2[0xd];
    lVar7 = 0;
  }
  else {
    iVar3 = *param_2;
    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {
      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);
      iVar3 = *param_2;
    }
    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);
    if (lVar7 != -1) {
      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);
      }
      lVar7 = lVar7 + *(longlong *)(local_74 + 4);
    }
    iVar3 = param_2[0xd];
  }
  if (iVar3 != 0) {
    iVar2 = *(int *)(iVar3 + 8);
    iVar5 = iVar3 + 4;
    if (*(int *)(iVar3 + 8) != 0) {
      do {
        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {
          piVar1 = (int *)(iVar6 + 0xc);
          iVar2 = *piVar1;
          iVar6 = iVar5;
          if (*piVar1 == 0) goto LAB_000be005;
        }
        iVar2 = *(int *)(iVar6 + 8);
        iVar5 = iVar6;
      } while (*(int *)(iVar6 + 8) != 0);
LAB_000be005:
      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {
        uVar4 = *(undefined4 *)(iVar6 + 0x14);
        goto LAB_000be019;
      }
    }
  }
  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);
LAB_000be019:
  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);
  local_7c = (undefined4)lVar7;
  snprintf(local_4e,0x32,"0x%llx",uVar4,0);
  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);
  }
  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);
  iVar2 = iVar3 + 3;
  if (-1 < iVar3) {
    iVar2 = iVar3;
  }
  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);
  if (local_74 != 0) {
    iVar3 = FUN_00119fe0(DAT_0033f2f0);
    if (iVar3 == 0) {
      FUN_000be340(param_1,param_2,param_3);
    }
    else {
      if (iVar3 != 2) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);
      }
      FUN_000be510(param_1,param_2,param_3);
    }
  }
  if (local_68 != local_60) {
    FUN_001ac470(local_68);
  }
  return;
}


CALL 0x00058c42
ADD EAX,0x2810fb
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x84
MOV EBX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x6c],EAX
MOV ESI,dword ptr [EBP + 0x10]
PUSH dword ptr [EBX]
MOV EBX,EAX
PUSH 0x20
CALL 0x00028950
MOV EAX,dword ptr [EDI]
ADD ESP,0xc
LEA EDX,[EBP + -0x64]
PUSH ESI
PUSH EDI
PUSH EDX
CALL dword ptr [EAX + 0x40]
MOV ECX,dword ptr [EBP + 0x8]
MOV EBX,dword ptr [EBP + -0x6c]
POP EAX
PUSH dword ptr [ECX]
PUSH dword ptr [EBP + -0x64]
CALL 0x00028060
MOV EAX,dword ptr [EBP + -0x60]
ADD ESP,0xc
PUSH 0x10
ADD EAX,0x1
PUSH EAX
PUSH dword ptr [EBP + 0x8]
CALL 0x000bd900
MOV EDX,dword ptr [EDI + 0x38]
MOV EAX,dword ptr [EDI + 0x3c]
ADD ESP,0x10
SUB EAX,EDX
SAR EAX,0x2
CMP ESI,EAX
JNC 0x000be144
MOV EAX,dword ptr [EDX + ESI*0x4]
MOV dword ptr [EBP + -0x70],EAX
TEST EAX,EAX
JZ 0x000be0e0
MOV EAX,dword ptr [EDI]
MOV EBX,dword ptr [EBP + -0x6c]
MOV EDX,dword ptr [EAX + 0x60]
LEA ECX,[EBX + 0xffd16640]
CMP EDX,ECX
JNZ 0x000be130
SUB ESP,0x8
PUSH ESI
PUSH EDI
CALL dword ptr [EAX + 0x68]
MOV ECX,EAX
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,EDX
ADD ESP,0x10
AND EAX,ECX
MOV dword ptr [EBP + -0x74],EDX
CMP EAX,-0x1
JZ 0x000bdfd2
MOV EAX,dword ptr [EBP + -0x70]
TEST byte ptr [EAX + 0x1c],0x1
JZ 0x000be176
MOV EAX,dword ptr [EBP + -0x70]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
ADD dword ptr [EBP + -0x78],EAX
ADC dword ptr [EBP + -0x74],EDX
MOV EAX,dword ptr [EDI + 0x34]
TEST EAX,EAX
JZ 0x000be100
LEA ECX,[EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000be100
MOV EDX,ECX
JMP 0x000bdff9
MOV EDX,EAX
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000be005
CMP ESI,dword ptr [EAX + 0x10]
JBE 0x000bdff0
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x000bdff9
CMP ECX,EDX
JZ 0x000be100
CMP ESI,dword ptr [EDX + 0x10]
JC 0x000be100
MOV EAX,dword ptr [EDX + 0x14]
MOV EBX,dword ptr [EBP + -0x6c]
SUB ESP,0xc
XOR EDX,EDX
PUSH EDX
LEA EDX,[EBP + -0x4a]
PUSH EAX
LEA EAX,[EBX + 0xfff1788b]
PUSH EAX
PUSH 0x32
PUSH EDX
MOV dword ptr [EBP + -0x7c],EDX
CALL 0x00028a40
MOV EBX,dword ptr [EBP + -0x6c]
ADD ESP,0x20
MOV ECX,dword ptr [EDI + 0x4]
MOV EDX,dword ptr [EBP + -0x7c]
LEA EAX,[EBX + 0x2f0]
MOV dword ptr [EBP + -0x80],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000be160
MOV EAX,dword ptr [EAX + 0x4]
SUB ESP,0x4
PUSH ECX
MOV ECX,dword ptr [EBP + -0x6c]
PUSH EDX
MOV EDX,dword ptr [EAX]
PUSH dword ptr [EBP + -0x74]
MOV EBX,ECX
TEST EDX,EDX
LEA EAX,[EDX + 0x3]
PUSH dword ptr [EBP + -0x78]
CMOVNS EAX,EDX
SAR EAX,0x2
PUSH EAX
LEA EAX,[ECX + 0xfff178e0]
PUSH EAX
MOV EAX,dword ptr [EBP + 0x8]
PUSH dword ptr [EAX]
CALL 0x00028750
MOV EDX,dword ptr [EBP + -0x70]
ADD ESP,0x20
TEST EDX,EDX
JZ 0x000be0bd
MOV EAX,dword ptr [EBP + -0x80]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH dword ptr [EAX]
CALL 0x00119fe0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000be118
SUB ESP,0x4
PUSH ESI
PUSH EDI
PUSH dword ptr [EBP + 0x8]
CALL 0x000be340
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x64]
LEA EDX,[EBP + -0x5c]
CMP EAX,EDX
JZ 0x000be0d6
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
CALL 0x001ac470
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EDI + 0x34]
MOV dword ptr [EBP + -0x78],0x0
MOV dword ptr [EBP + -0x74],0x0
TEST EAX,EAX
JNZ 0x000bdfdd
LEA ESI,[ESI]
MOV EAX,dword ptr [EDI]
SUB ESP,0x8
PUSH ESI
PUSH EDI
CALL dword ptr [EAX + 0x3c]
ADD ESP,0x10
JMP 0x000be019
CMP EAX,0x2
JNZ 0x000be192
SUB ESP,0x4
PUSH ESI
PUSH EDI
PUSH dword ptr [EBP + 0x8]
CALL 0x000be510
JMP 0x000be0ba
SUB ESP,0x8
PUSH ESI
PUSH EDI
CALL EDX
MOV dword ptr [EBP + -0x70],EAX
ADD ESP,0x10
MOV EAX,dword ptr [EDI]
JMP 0x000bdf9a
MOV EBX,dword ptr [EBP + -0x6c]
PUSH ESI
LEA EAX,[EBX + 0xfff179e4]
PUSH EAX
LEA EAX,[EBX + 0xfff0c385]
PUSH 0x50b
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBX + 0xfff179c0]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x69
PUSH EAX
CALL 0x0008b620
PUSH EBX
MOV EBX,dword ptr [EBP + -0x6c]
LEA EAX,[EBX + 0xfff179c8]
PUSH EAX
LEA EAX,[EBX + 0xfff0c35d]
PUSH 0xc5
PUSH EAX
CALL 0x0008b620
MOV EBX,dword ptr [EBP + -0x6c]
PUSH EAX
LEA EAX,[EBX + 0xfff179f8]
PUSH EAX
LEA EAX,[EBX + 0xfff17859]
PUSH 0x139
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */\n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */\n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)" identifier (parameter_list "(undefined4 *param_1,int *param_2,uint param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */\n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined4 local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "char local_60 [18];" primitive_type (array_declarator "local_60 [18]" identifier [ number_literal ]) ;) (declaration "char local_4e [62];" primitive_type (array_declarator "local_4e [62]" identifier [ number_literal ]) ;) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" identifier (argument_list "(0x20,(FILE *)*param_1)" ( number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "(**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);" (call_expression "(**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x40))" ( (pointer_expression "**(code **)(*param_2 + 0x40)" * (pointer_expression "*(code **)(*param_2 + 0x40)" * (cast_expression "(code **)(*param_2 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x40)" ( (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(&local_68,param_2,param_3)" ( (pointer_expression "&local_68" & identifier) , identifier , identifier ))) ;) comment (expression_statement "fputs(local_68,(FILE *)*param_1);" (call_expression "fputs(local_68,(FILE *)*param_1)" identifier (argument_list "(local_68,(FILE *)*param_1)" ( identifier , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "FUN_000bd900(param_1,local_64 + 1,0x10);" (call_expression "FUN_000bd900(param_1,local_64 + 1,0x10)" identifier (argument_list "(param_1,local_64 + 1,0x10)" ( identifier , (binary_expression "local_64 + 1" identifier + number_literal) , number_literal ))) ;) (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }" if (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3)" ( (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" ( (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) - (subscript_expression "param_2[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }" { comment (expression_statement "FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);" (call_expression "FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3)" identifier (argument_list "("../../gold/object.h",0x50b,"is_section_included",param_3)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""is_section_included"" " string_content ") , identifier ))) ;) })) (expression_statement "local_74 = *(int *)(param_2[0xe] + param_3 * 4);" (assignment_expression "local_74 = *(int *)(param_2[0xe] + param_3 * 4)" identifier = (pointer_expression "*(int *)(param_2[0xe] + param_3 * 4)" * (cast_expression "(int *)(param_2[0xe] + param_3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xe] + param_3 * 4)" ( (binary_expression "param_2[0xe] + param_3 * 4" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) + (binary_expression "param_3 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" if (parenthesized_expression "(local_74 == 0)" ( (binary_expression "local_74 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }" { (expression_statement "iVar3 = param_2[0xd];" (assignment_expression "iVar3 = param_2[0xd]" identifier = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" else (compound_statement "{\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" { (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }" if (parenthesized_expression "(*(code **)(iVar3 + 0x60) != FUN_00055640)" ( (binary_expression "*(code **)(iVar3 + 0x60) != FUN_00055640" (pointer_expression "*(code **)(iVar3 + 0x60)" * (cast_expression "(code **)(iVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x60)" ( (binary_expression "iVar3 + 0x60" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }" { (expression_statement "local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);" (assignment_expression "local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3)" identifier = (call_expression "(**(code **)(iVar3 + 0x60))(param_2,param_3)" (parenthesized_expression "(**(code **)(iVar3 + 0x60))" ( (pointer_expression "**(code **)(iVar3 + 0x60)" * (pointer_expression "*(code **)(iVar3 + 0x60)" * (cast_expression "(code **)(iVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x60)" ( (binary_expression "iVar3 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (expression_statement "lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);" (assignment_expression "lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3)" identifier = (call_expression "(**(code **)(iVar3 + 0x68))(param_2,param_3)" (parenthesized_expression "(**(code **)(iVar3 + 0x68))" ( (pointer_expression "**(code **)(iVar3 + 0x68)" * (pointer_expression "*(code **)(iVar3 + 0x68)" * (cast_expression "(code **)(iVar3 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) ))))) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (if_statement "if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }" if (parenthesized_expression "(lVar7 != -1)" ( (binary_expression "lVar7 != -1" identifier != number_literal) )) (compound_statement "{\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }" { (if_statement "if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }" if (parenthesized_expression "((*(byte *)(local_74 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(local_74 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(local_74 + 0x1c) & 1)" ( (binary_expression "*(byte *)(local_74 + 0x1c) & 1" (pointer_expression "*(byte *)(local_74 + 0x1c)" * (cast_expression "(byte *)(local_74 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 0x1c)" ( (binary_expression "local_74 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);" (call_expression "FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT)" identifier (argument_list "("../../gold/output.h",0xc5,"address",&__DT_PLTGOT)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "lVar7 = lVar7 + *(longlong *)(local_74 + 4);" (assignment_expression "lVar7 = lVar7 + *(longlong *)(local_74 + 4)" identifier = (binary_expression "lVar7 + *(longlong *)(local_74 + 4)" identifier + (pointer_expression "*(longlong *)(local_74 + 4)" * (cast_expression "(longlong *)(local_74 + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 4)" ( (binary_expression "local_74 + 4" identifier + number_literal) )))))) ;) })) (expression_statement "iVar3 = param_2[0xd];" (assignment_expression "iVar3 = param_2[0xd]" identifier = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" { (expression_statement "iVar2 = *(int *)(iVar3 + 8);" (assignment_expression "iVar2 = *(int *)(iVar3 + 8)" identifier = (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar3 + 4;" (assignment_expression "iVar5 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 8) != 0)" ( (binary_expression "*(int *)(iVar3 + 8) != 0" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }" { (do_statement "do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);" do (compound_statement "{\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      }" { (while_statement "while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }" while (parenthesized_expression "(iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3)" ( (comma_expression "iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3" (assignment_expression "iVar6 = iVar2" identifier = identifier) , (binary_expression "*(uint *)(iVar6 + 0x10) < param_3" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) < identifier)) )) (compound_statement "{\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }" { (expression_statement "piVar1 = (int *)(iVar6 + 0xc);" (assignment_expression "piVar1 = (int *)(iVar6 + 0xc)" identifier = (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" identifier = identifier) ;) (if_statement "if (*piVar1 == 0) goto LAB_000be005;" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_000be005;" goto statement_identifier ;)) })) (expression_statement "iVar2 = *(int *)(iVar6 + 8);" (assignment_expression "iVar2 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) }) while (parenthesized_expression "(*(int *)(iVar6 + 8) != 0)" ( (binary_expression "*(int *)(iVar6 + 8) != 0" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" statement_identifier : (if_statement "if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" if (parenthesized_expression "((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3))" ( (binary_expression "(iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)" (parenthesized_expression "(iVar3 + 4 != iVar6)" ( (binary_expression "iVar3 + 4 != iVar6" (binary_expression "iVar3 + 4" identifier + number_literal) != identifier) )) && (parenthesized_expression "(*(uint *)(iVar6 + 0x10) <= param_3)" ( (binary_expression "*(uint *)(iVar6 + 0x10) <= param_3" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) <= identifier) ))) )) (compound_statement "{\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" { (expression_statement "uVar4 = *(undefined4 *)(iVar6 + 0x14);" (assignment_expression "uVar4 = *(undefined4 *)(iVar6 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000be019;" goto statement_identifier ;) }))) })) })) (expression_statement "uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);" (assignment_expression "uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3)" identifier = (call_expression "(**(code **)(*param_2 + 0x3c))(param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x3c))" ( (pointer_expression "**(code **)(*param_2 + 0x3c)" * (pointer_expression "*(code **)(*param_2 + 0x3c)" * (cast_expression "(code **)(*param_2 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x3c)" ( (binary_expression "*param_2 + 0x3c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (labeled_statement "LAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);" statement_identifier : (expression_statement "local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);" (assignment_expression "local_78 = (undefined4)((ulonglong)lVar7 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)lVar7 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_7c = (undefined4)lVar7;" (assignment_expression "local_7c = (undefined4)lVar7" identifier = (cast_expression "(undefined4)lVar7" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "snprintf(local_4e,0x32,"0x%llx",uVar4,0);" (call_expression "snprintf(local_4e,0x32,"0x%llx",uVar4,0)" identifier (argument_list "(local_4e,0x32,"0x%llx",uVar4,0)" ( identifier , number_literal , (string_literal ""0x%llx"" " string_content ") , identifier , number_literal ))) ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }" { comment (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1])" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_2[1])" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar2 = iVar3 + 3;" (assignment_expression "iVar2 = iVar3 + 3" identifier = (binary_expression "iVar3 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n    iVar2 = iVar3;\n  }" { (expression_statement "iVar2 = iVar3;" (assignment_expression "iVar2 = iVar3" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);" (call_expression "fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1])" identifier (argument_list "((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1])" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""0x%0*llx %10s %s\n"" " string_content escape_sequence ") , (binary_expression "iVar2 >> 2" identifier >> number_literal) , identifier , identifier , identifier , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))) ;) (if_statement "if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }" if (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }" { (expression_statement "iVar3 = FUN_00119fe0(DAT_0033f2f0);" (assignment_expression "iVar3 = FUN_00119fe0(DAT_0033f2f0)" identifier = (call_expression "FUN_00119fe0(DAT_0033f2f0)" identifier (argument_list "(DAT_0033f2f0)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_000be340(param_1,param_2,param_3);\n    }" { (expression_statement "FUN_000be340(param_1,param_2,param_3);" (call_expression "FUN_000be340(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" else (compound_statement "{\n      if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" { (if_statement "if (iVar3 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }" { comment (expression_statement "FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);" (call_expression "FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3)" identifier (argument_list "("../../gold/mapfile.cc",0x139,"print_input_section",iVar3)" ( (string_literal ""../../gold/mapfile.cc"" " string_content ") , number_literal , (string_literal ""print_input_section"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_000be510(param_1,param_2,param_3);" (call_expression "FUN_000be510(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }" if (parenthesized_expression "(local_68 != local_60)" ( (binary_expression "local_68 != local_60" identifier != identifier) )) (compound_statement "{\n    FUN_001ac470(local_68);\n  }" { (expression_statement "FUN_001ac470(local_68);" (call_expression "FUN_001ac470(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void print_input_section(Mapfile * this, Relobj * relobj, uint shndx)\n    */\n\nvoid __thiscall gold::Mapfile::print_input_section(Mapfile *this,Relobj *relobj,uint shndx)\n\n{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  pointer ppOVar3;\n  uint uVar4;\n  Compressed_section_map *pCVar5;\n  _Base_ptr p_Var6;\n  _func_int_varargs **pp_Var7;\n  int iVar8;\n  Target_size_endianness TVar9;\n  int iVar10;\n  uint extraout_EDX;\n  _Base_ptr p_Var11;\n  _Base_ptr p_Var12;\n  bool bVar13;\n  uint local_7c;\n  uint local_78;\n  Output_section *local_74;\n  string name;\n  char sizebuf [50];\n  \n  putc(0x20,(FILE *)this->map_file_);\n  (*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,shndx);\n                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */\n  fputs(name._M_dataplus._M_p,(FILE *)this->map_file_);\n  advance_to_column(this,name._M_string_length + 1,0x10);\n  ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if ((uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n  }\n  local_74 = ppOVar3[shndx];\n  if (local_74 == (Output_section *)0x0) {\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n    local_7c = 0;\n    local_78 = 0;\n  }\n  else {\n    pp_Var7 = (relobj->super_Object)._vptr_Object;\n    if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }\n    local_7c = (*pp_Var7[0x1a])(relobj,shndx);\n    local_78 = extraout_EDX;\n    if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n  }\n  if (pCVar5 != (Compressed_section_map *)0x0) {\n    p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var11 = &p_Var1->_M_header;\n    if (p_Var6 != (_Base_ptr)0x0) {\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  iVar10 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx);\nLAB_000be019:\n  snprintf(sizebuf,0x32,"0x%llx",iVar10,0);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar10 = parameters->target_->pti_->size;\n  iVar8 = iVar10 + 3;\n  if (-1 < iVar10) {\n    iVar8 = iVar10;\n  }\n  fprintf((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,\n          (relobj->super_Object).name_._M_dataplus._M_p);\n  if (local_74 != (Output_section *)0x0) {\n    TVar9 = Parameters::size_and_endianness(parameters);\n    if (TVar9 == TARGET_32_LITTLE) {\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }\n    else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2) {\n    operator_delete(name._M_dataplus._M_p);\n  }\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::Mapfile::print_input_section(Mapfile *this,Relobj *relobj,uint shndx)\n\n{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  pointer ppOVar3;\n  uint uVar4;\n  Compressed_section_map *pCVar5;\n  _Base_ptr p_Var6;\n  _func_int_varargs **pp_Var7;\n  int iVar8;\n  Target_size_endianness TVar9;\n  int iVar10;\n  uint extraout_EDX;\n  _Base_ptr p_Var11;\n  _Base_ptr p_Var12;\n  bool bVar13;\n  uint local_7c;\n  uint local_78;\n  Output_section *local_74;\n  string name;\n  char sizebuf [50];\n  \n  putc(0x20,(FILE *)this->map_file_);\n  (*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,shndx);\n                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */\n  fputs(name._M_dataplus._M_p,(FILE *)this->map_file_);\n  advance_to_column(this,name._M_string_length + 1,0x10);\n  ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if ((uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n  }\n  local_74 = ppOVar3[shndx];\n  if (local_74 == (Output_section *)0x0) {\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n    local_7c = 0;\n    local_78 = 0;\n  }\n  else {\n    pp_Var7 = (relobj->super_Object)._vptr_Object;\n    if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }\n    local_7c = (*pp_Var7[0x1a])(relobj,shndx);\n    local_78 = extraout_EDX;\n    if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n  }\n  if (pCVar5 != (Compressed_section_map *)0x0) {\n    p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var11 = &p_Var1->_M_header;\n    if (p_Var6 != (_Base_ptr)0x0) {\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  iVar10 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx);\nLAB_000be019:\n  snprintf(sizebuf,0x32,"0x%llx",iVar10,0);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar10 = parameters->target_->pti_->size;\n  iVar8 = iVar10 + 3;\n  if (-1 < iVar10) {\n    iVar8 = iVar10;\n  }\n  fprintf((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,\n          (relobj->super_Object).name_._M_dataplus._M_p);\n  if (local_74 != (Output_section *)0x0) {\n    TVar9 = Parameters::size_and_endianness(parameters);\n    if (TVar9 == TARGET_32_LITTLE) {\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }\n    else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2) {\n    operator_delete(name._M_dataplus._M_p);\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Mapfile::" identifier : : identifier : :) (function_declarator "print_input_section(Mapfile *this,Relobj *relobj,uint shndx)" identifier (parameter_list "(Mapfile *this,Relobj *relobj,uint shndx)" ( (parameter_declaration "Mapfile *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *relobj" type_identifier (pointer_declarator "*relobj" * identifier)) , (parameter_declaration "uint shndx" type_identifier identifier) ))) (compound_statement "{\n  _Rb_tree_header *p_Var1;\n  _Base_ptr *pp_Var2;\n  pointer ppOVar3;\n  uint uVar4;\n  Compressed_section_map *pCVar5;\n  _Base_ptr p_Var6;\n  _func_int_varargs **pp_Var7;\n  int iVar8;\n  Target_size_endianness TVar9;\n  int iVar10;\n  uint extraout_EDX;\n  _Base_ptr p_Var11;\n  _Base_ptr p_Var12;\n  bool bVar13;\n  uint local_7c;\n  uint local_78;\n  Output_section *local_74;\n  string name;\n  char sizebuf [50];\n  \n  putc(0x20,(FILE *)this->map_file_);\n  (*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,shndx);\n                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */\n  fputs(name._M_dataplus._M_p,(FILE *)this->map_file_);\n  advance_to_column(this,name._M_string_length + 1,0x10);\n  ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;\n  if ((uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n  }\n  local_74 = ppOVar3[shndx];\n  if (local_74 == (Output_section *)0x0) {\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n    local_7c = 0;\n    local_78 = 0;\n  }\n  else {\n    pp_Var7 = (relobj->super_Object)._vptr_Object;\n    if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }\n    local_7c = (*pp_Var7[0x1a])(relobj,shndx);\n    local_78 = extraout_EDX;\n    if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n  }\n  if (pCVar5 != (Compressed_section_map *)0x0) {\n    p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var11 = &p_Var1->_M_header;\n    if (p_Var6 != (_Base_ptr)0x0) {\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  iVar10 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx);\nLAB_000be019:\n  snprintf(sizebuf,0x32,"0x%llx",iVar10,0);\n  if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }\n  iVar10 = parameters->target_->pti_->size;\n  iVar8 = iVar10 + 3;\n  if (-1 < iVar10) {\n    iVar8 = iVar10;\n  }\n  fprintf((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,\n          (relobj->super_Object).name_._M_dataplus._M_p);\n  if (local_74 != (Output_section *)0x0) {\n    TVar9 = Parameters::size_and_endianness(parameters);\n    if (TVar9 == TARGET_32_LITTLE) {\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }\n    else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }\n  }\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2) {\n    operator_delete(name._M_dataplus._M_p);\n  }\n  return;\n}" { (declaration "_Rb_tree_header *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "_Base_ptr *pp_Var2;" type_identifier (pointer_declarator "*pp_Var2" * identifier) ;) (declaration "pointer ppOVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "Compressed_section_map *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (declaration "_Base_ptr p_Var6;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var7;" type_identifier (pointer_declarator "**pp_Var7" * (pointer_declarator "*pp_Var7" * identifier)) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "Target_size_endianness TVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint extraout_EDX;" type_identifier identifier ;) (declaration "_Base_ptr p_Var11;" type_identifier identifier ;) (declaration "_Base_ptr p_Var12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "Output_section *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "string name;" type_identifier identifier ;) (declaration "char sizebuf [50];" primitive_type (array_declarator "sizebuf [50]" identifier [ number_literal ]) ;) (expression_statement "putc(0x20,(FILE *)this->map_file_);" (call_expression "putc(0x20,(FILE *)this->map_file_)" identifier (argument_list "(0x20,(FILE *)this->map_file_)" ( number_literal , (cast_expression "(FILE *)this->map_file_" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->map_file_" identifier -> field_identifier)) ))) ;) (expression_statement "(*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,shndx);" (call_expression "(*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,shndx)" (parenthesized_expression "(*(relobj->super_Object)._vptr_Object[0x10])" ( (pointer_expression "*(relobj->super_Object)._vptr_Object[0x10]" * (subscript_expression "(relobj->super_Object)._vptr_Object[0x10]" (field_expression "(relobj->super_Object)._vptr_Object" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(&name,relobj,shndx)" ( (pointer_expression "&name" & identifier) , identifier , identifier ))) ;) comment (expression_statement "fputs(name._M_dataplus._M_p,(FILE *)this->map_file_);" (call_expression "fputs(name._M_dataplus._M_p,(FILE *)this->map_file_)" identifier (argument_list "(name._M_dataplus._M_p,(FILE *)this->map_file_)" ( (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier) , (cast_expression "(FILE *)this->map_file_" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->map_file_" identifier -> field_identifier)) ))) ;) (expression_statement "advance_to_column(this,name._M_string_length + 1,0x10);" (call_expression "advance_to_column(this,name._M_string_length + 1,0x10)" identifier (argument_list "(this,name._M_string_length + 1,0x10)" ( identifier , (binary_expression "name._M_string_length + 1" (field_expression "name._M_string_length" identifier . field_identifier) + number_literal) , number_literal ))) ;) (expression_statement "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start;" (field_expression "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_start" (field_expression "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl" (binary_expression "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar3 = (relobj->output_sections_).\n            super__Vector_base<gold" identifier = (binary_expression "(relobj->output_sections_).\n            super__Vector_base<gold" (field_expression "(relobj->output_sections_).\n            super__Vector_base" (parenthesized_expression "(relobj->output_sections_)" ( (field_expression "relobj->output_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n  }" if (parenthesized_expression "((uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx)" ( (binary_expression "(uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= shndx" (call_expression "(uint)((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2)" ( (binary_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3 >> 2" (binary_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish - (int)ppOVar3" (field_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl._M_finish" (field_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n                  _M_impl" (binary_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(relobj->output_sections_).\n                  super__Vector_base<gold" (cast_expression "(int)(relobj->output_sections_).\n                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(relobj->output_sections_).\n                  super__Vector_base" (parenthesized_expression "(relobj->output_sections_)" ( (field_expression "relobj->output_sections_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar3" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included");" (call_expression "do_gold_unreachable("../../gold/object.h",0x50b,"is_section_included")" identifier (argument_list "("../../gold/object.h",0x50b,"is_section_included")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""is_section_included"" " string_content ") ))) ;) })) (expression_statement "local_74 = ppOVar3[shndx];" (assignment_expression "local_74 = ppOVar3[shndx]" identifier = (subscript_expression "ppOVar3[shndx]" identifier [ identifier ])) ;) (if_statement "if (local_74 == (Output_section *)0x0) {\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n    local_7c = 0;\n    local_78 = 0;\n  }\n  else {\n    pp_Var7 = (relobj->super_Object)._vptr_Object;\n    if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }\n    local_7c = (*pp_Var7[0x1a])(relobj,shndx);\n    local_78 = extraout_EDX;\n    if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n  }" if (parenthesized_expression "(local_74 == (Output_section *)0x0)" ( (binary_expression "local_74 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n    local_7c = 0;\n    local_78 = 0;\n  }" { (expression_statement "pCVar5 = (relobj->super_Object).compressed_sections_;" (assignment_expression "pCVar5 = (relobj->super_Object).compressed_sections_" identifier = (field_expression "(relobj->super_Object).compressed_sections_" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_78 = 0;" (assignment_expression "local_78 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    pp_Var7 = (relobj->super_Object)._vptr_Object;\n    if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }\n    local_7c = (*pp_Var7[0x1a])(relobj,shndx);\n    local_78 = extraout_EDX;\n    if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n  }" else (compound_statement "{\n    pp_Var7 = (relobj->super_Object)._vptr_Object;\n    if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }\n    local_7c = (*pp_Var7[0x1a])(relobj,shndx);\n    local_78 = extraout_EDX;\n    if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }\n    pCVar5 = (relobj->super_Object).compressed_sections_;\n  }" { (expression_statement "pp_Var7 = (relobj->super_Object)._vptr_Object;" (assignment_expression "pp_Var7 = (relobj->super_Object)._vptr_Object" identifier = (field_expression "(relobj->super_Object)._vptr_Object" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pp_Var7[0x18] != Relobj::do_output_section) {\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }" if (parenthesized_expression "(pp_Var7[0x18] != Relobj::do_output_section)" ( (binary_expression "pp_Var7[0x18] != Relobj" (subscript_expression "pp_Var7[0x18]" identifier [ number_literal ]) != identifier) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n      local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);\n      pp_Var7 = (relobj->super_Object)._vptr_Object;\n    }" { (expression_statement "local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx);" (assignment_expression "local_74 = (Output_section *)(*pp_Var7[0x18])(relobj,shndx)" identifier = (cast_expression "(Output_section *)(*pp_Var7[0x18])(relobj,shndx)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pp_Var7[0x18])(relobj,shndx)" (parenthesized_expression "(*pp_Var7[0x18])" ( (pointer_expression "*pp_Var7[0x18]" * (subscript_expression "pp_Var7[0x18]" identifier [ number_literal ])) )) (argument_list "(relobj,shndx)" ( identifier , identifier ))))) ;) (expression_statement "pp_Var7 = (relobj->super_Object)._vptr_Object;" (assignment_expression "pp_Var7 = (relobj->super_Object)._vptr_Object" identifier = (field_expression "(relobj->super_Object)._vptr_Object" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "local_7c = (*pp_Var7[0x1a])(relobj,shndx);" (assignment_expression "local_7c = (*pp_Var7[0x1a])(relobj,shndx)" identifier = (call_expression "(*pp_Var7[0x1a])(relobj,shndx)" (parenthesized_expression "(*pp_Var7[0x1a])" ( (pointer_expression "*pp_Var7[0x1a]" * (subscript_expression "pp_Var7[0x1a]" identifier [ number_literal ])) )) (argument_list "(relobj,shndx)" ( identifier , identifier )))) ;) (expression_statement "local_78 = extraout_EDX;" (assignment_expression "local_78 = extraout_EDX" identifier = identifier) ;) (if_statement "if ((extraout_EDX & local_7c) != 0xffffffff) {\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }" if (parenthesized_expression "((extraout_EDX & local_7c) != 0xffffffff)" ( (binary_expression "(extraout_EDX & local_7c) != 0xffffffff" (parenthesized_expression "(extraout_EDX & local_7c)" ( (binary_expression "extraout_EDX & local_7c" identifier & identifier) )) != number_literal) )) (compound_statement "{\n      if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      uVar4 = (uint)(local_74->super_Output_data).address_;\n      bVar13 = CARRY4(local_7c,uVar4);\n      local_7c = local_7c + uVar4;\n      local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;\n    }" { (if_statement "if (((local_74->super_Output_data).field_0x1c & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }" if (parenthesized_expression "(((local_74->super_Output_data).field_0x1c & 1) == 0)" ( (binary_expression "((local_74->super_Output_data).field_0x1c & 1) == 0" (parenthesized_expression "((local_74->super_Output_data).field_0x1c & 1)" ( (binary_expression "(local_74->super_Output_data).field_0x1c & 1" (field_expression "(local_74->super_Output_data).field_0x1c" (parenthesized_expression "(local_74->super_Output_data)" ( (field_expression "local_74->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;) })) (expression_statement "uVar4 = (uint)(local_74->super_Output_data).address_;" (assignment_expression "uVar4 = (uint)(local_74->super_Output_data).address_" identifier = (field_expression "(uint)(local_74->super_Output_data).address_" (call_expression "(uint)(local_74->super_Output_data)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_74->super_Output_data)" ( (field_expression "local_74->super_Output_data" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "bVar13 = CARRY4(local_7c,uVar4);" (assignment_expression "bVar13 = CARRY4(local_7c,uVar4)" identifier = (call_expression "CARRY4(local_7c,uVar4)" identifier (argument_list "(local_7c,uVar4)" ( identifier , identifier )))) ;) (expression_statement "local_7c = local_7c + uVar4;" (assignment_expression "local_7c = local_7c + uVar4" identifier = (binary_expression "local_7c + uVar4" identifier + identifier)) ;) (expression_statement "local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13;" (assignment_expression "local_78 = extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13" identifier = (binary_expression "extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4) +\n                 (uint)bVar13" (binary_expression "extraout_EDX + *(int *)((int)&(local_74->super_Output_data).address_ + 4)" identifier + (pointer_expression "*(int *)((int)&(local_74->super_Output_data).address_ + 4)" * (cast_expression "(int *)((int)&(local_74->super_Output_data).address_ + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_74->super_Output_data).address_ + 4)" ( (binary_expression "(int)&(local_74->super_Output_data).address_ + 4" (cast_expression "(int)&(local_74->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_74->super_Output_data).address_" & (field_expression "(local_74->super_Output_data).address_" (parenthesized_expression "(local_74->super_Output_data)" ( (field_expression "local_74->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) + (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "pCVar5 = (relobj->super_Object).compressed_sections_;" (assignment_expression "pCVar5 = (relobj->super_Object).compressed_sections_" identifier = (field_expression "(relobj->super_Object).compressed_sections_" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) }))) (if_statement "if (pCVar5 != (Compressed_section_map *)0x0) {\n    p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var11 = &p_Var1->_M_header;\n    if (p_Var6 != (_Base_ptr)0x0) {\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" if (parenthesized_expression "(pCVar5 != (Compressed_section_map *)0x0)" ( (binary_expression "pCVar5 != (Compressed_section_map *)0x0" identifier != (cast_expression "(Compressed_section_map *)0x0" ( (type_descriptor "Compressed_section_map *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;\n    p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;\n    p_Var11 = &p_Var1->_M_header;\n    if (p_Var6 != (_Base_ptr)0x0) {\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" { (expression_statement "p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header;" (assignment_expression "p_Var1 = &(pCVar5->_M_t)._M_impl.super__Rb_tree_header" identifier = (pointer_expression "&(pCVar5->_M_t)._M_impl.super__Rb_tree_header" & (field_expression "(pCVar5->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar5->_M_t)._M_impl" (parenthesized_expression "(pCVar5->_M_t)" ( (field_expression "pCVar5->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;" (assignment_expression "p_Var6 = (pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent" identifier = (field_expression "(pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent" (field_expression "(pCVar5->_M_t)._M_impl.super__Rb_tree_header._M_header" (field_expression "(pCVar5->_M_t)._M_impl.super__Rb_tree_header" (field_expression "(pCVar5->_M_t)._M_impl" (parenthesized_expression "(pCVar5->_M_t)" ( (field_expression "pCVar5->_M_t" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var11 = &p_Var1->_M_header;" (assignment_expression "p_Var11 = &p_Var1->_M_header" identifier = (pointer_expression "&p_Var1->_M_header" & (field_expression "p_Var1->_M_header" identifier -> field_identifier))) ;) (if_statement "if (p_Var6 != (_Base_ptr)0x0) {\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }" if (parenthesized_expression "(p_Var6 != (_Base_ptr)0x0)" ( (binary_expression "p_Var6 != (_Base_ptr)0x0" identifier != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n      do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);\nLAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }\n    }" { (do_statement "do {\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      } while (p_Var12->_M_left != (_Base_ptr)0x0);" do (compound_statement "{\n        while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }\n        p_Var6 = p_Var12->_M_left;\n        p_Var11 = p_Var12;\n      }" { (while_statement "while (p_Var12 = p_Var6, p_Var12[1]._M_color < shndx) {\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }" while (parenthesized_expression "(p_Var12 = p_Var6, p_Var12[1]._M_color < shndx)" ( (comma_expression "p_Var12 = p_Var6, p_Var12[1]._M_color < shndx" (assignment_expression "p_Var12 = p_Var6" identifier = identifier) , (binary_expression "p_Var12[1]._M_color < shndx" (field_expression "p_Var12[1]._M_color" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier) < identifier)) )) (compound_statement "{\n          pp_Var2 = &p_Var12->_M_right;\n          p_Var6 = *pp_Var2;\n          p_Var12 = p_Var11;\n          if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;\n        }" { (expression_statement "pp_Var2 = &p_Var12->_M_right;" (assignment_expression "pp_Var2 = &p_Var12->_M_right" identifier = (pointer_expression "&p_Var12->_M_right" & (field_expression "p_Var12->_M_right" identifier -> field_identifier))) ;) (expression_statement "p_Var6 = *pp_Var2;" (assignment_expression "p_Var6 = *pp_Var2" identifier = (pointer_expression "*pp_Var2" * identifier)) ;) (expression_statement "p_Var12 = p_Var11;" (assignment_expression "p_Var12 = p_Var11" identifier = identifier) ;) (if_statement "if (*pp_Var2 == (_Base_ptr)0x0) goto LAB_000be005;" if (parenthesized_expression "(*pp_Var2 == (_Base_ptr)0x0)" ( (binary_expression "*pp_Var2 == (_Base_ptr)0x0" (pointer_expression "*pp_Var2" * identifier) == (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_000be005;" goto statement_identifier ;)) })) (expression_statement "p_Var6 = p_Var12->_M_left;" (assignment_expression "p_Var6 = p_Var12->_M_left" identifier = (field_expression "p_Var12->_M_left" identifier -> field_identifier)) ;) (expression_statement "p_Var11 = p_Var12;" (assignment_expression "p_Var11 = p_Var12" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var12->_M_left != (_Base_ptr)0x0)" ( (binary_expression "p_Var12->_M_left != (_Base_ptr)0x0" (field_expression "p_Var12->_M_left" identifier -> field_identifier) != (cast_expression "(_Base_ptr)0x0" ( (type_descriptor "_Base_ptr" type_identifier) ) number_literal)) )) ;) (labeled_statement "LAB_000be005:\n      if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }" statement_identifier : (if_statement "if ((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)) {\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }" if (parenthesized_expression "((p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx))" ( (binary_expression "(p_Var1 != (_Rb_tree_header *)p_Var12) &&\n         (((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)" (parenthesized_expression "(p_Var1 != (_Rb_tree_header *)p_Var12)" ( (binary_expression "p_Var1 != (_Rb_tree_header *)p_Var12" identifier != (cast_expression "(_Rb_tree_header *)p_Var12" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) && (parenthesized_expression "(((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx)" ( (binary_expression "((_Rb_tree_header *)p_Var12)->_M_node_count <= shndx" (field_expression "((_Rb_tree_header *)p_Var12)->_M_node_count" (parenthesized_expression "((_Rb_tree_header *)p_Var12)" ( (cast_expression "(_Rb_tree_header *)p_Var12" ( (type_descriptor "_Rb_tree_header *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) <= identifier) ))) )) (compound_statement "{\n        iVar10 = *(int *)((int)p_Var12 + 0x14);\n        goto LAB_000be019;\n      }" { (expression_statement "iVar10 = *(int *)((int)p_Var12 + 0x14);" (assignment_expression "iVar10 = *(int *)((int)p_Var12 + 0x14)" identifier = (pointer_expression "*(int *)((int)p_Var12 + 0x14)" * (cast_expression "(int *)((int)p_Var12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var12 + 0x14)" ( (binary_expression "(int)p_Var12 + 0x14" (cast_expression "(int)p_Var12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000be019;" goto statement_identifier ;) }))) })) })) (expression_statement "iVar10 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx);" (assignment_expression "iVar10 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx)" identifier = (call_expression "(*(relobj->super_Object)._vptr_Object[0xf])(relobj,shndx)" (parenthesized_expression "(*(relobj->super_Object)._vptr_Object[0xf])" ( (pointer_expression "*(relobj->super_Object)._vptr_Object[0xf]" * (subscript_expression "(relobj->super_Object)._vptr_Object[0xf]" (field_expression "(relobj->super_Object)._vptr_Object" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(relobj,shndx)" ( identifier , identifier )))) ;) (labeled_statement "LAB_000be019:\n  snprintf(sizebuf,0x32,"0x%llx",iVar10,0);" statement_identifier : (expression_statement "snprintf(sizebuf,0x32,"0x%llx",iVar10,0);" (call_expression "snprintf(sizebuf,0x32,"0x%llx",iVar10,0)" identifier (argument_list "(sizebuf,0x32,"0x%llx",iVar10,0)" ( identifier , number_literal , (string_literal ""0x%llx"" " string_content ") , identifier , number_literal ))) ;)) (if_statement "if (parameters->target_ == (Target *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" if (parenthesized_expression "(parameters->target_ == (Target *)0x0)" ( (binary_expression "parameters->target_ == (Target *)0x0" (field_expression "parameters->target_" identifier -> field_identifier) == (cast_expression "(Target *)0x0" ( (type_descriptor "Target *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x69,"target");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x69,"target");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x69,"target")" identifier (argument_list "("../../gold/parameters.h",0x69,"target")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") ))) ;) })) (expression_statement "iVar10 = parameters->target_->pti_->size;" (assignment_expression "iVar10 = parameters->target_->pti_->size" identifier = (field_expression "parameters->target_->pti_->size" (field_expression "parameters->target_->pti_" (field_expression "parameters->target_" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (expression_statement "iVar8 = iVar10 + 3;" (assignment_expression "iVar8 = iVar10 + 3" identifier = (binary_expression "iVar10 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar10) {\n    iVar8 = iVar10;\n  }" if (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) (compound_statement "{\n    iVar8 = iVar10;\n  }" { (expression_statement "iVar8 = iVar10;" (assignment_expression "iVar8 = iVar10" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,\n          (relobj->super_Object).name_._M_dataplus._M_p);" (call_expression "fprintf((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,\n          (relobj->super_Object).name_._M_dataplus._M_p)" identifier (argument_list "((FILE *)this->map_file_,"0x%0*llx %10s %s\n",iVar8 >> 2,local_7c,local_78,sizebuf,\n          (relobj->super_Object).name_._M_dataplus._M_p)" ( (cast_expression "(FILE *)this->map_file_" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->map_file_" identifier -> field_identifier)) , (string_literal ""0x%0*llx %10s %s\n"" " string_content escape_sequence ") , (binary_expression "iVar8 >> 2" identifier >> number_literal) , identifier , identifier , identifier , (field_expression "(relobj->super_Object).name_._M_dataplus._M_p" (field_expression "(relobj->super_Object).name_._M_dataplus" (field_expression "(relobj->super_Object).name_" (parenthesized_expression "(relobj->super_Object)" ( (field_expression "relobj->super_Object" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) ))) ;) (if_statement "if (local_74 != (Output_section *)0x0) {\n    TVar9 = Parameters::size_and_endianness(parameters);\n    if (TVar9 == TARGET_32_LITTLE) {\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }\n    else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }\n  }" if (parenthesized_expression "(local_74 != (Output_section *)0x0)" ( (binary_expression "local_74 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    TVar9 = Parameters::size_and_endianness(parameters);\n    if (TVar9 == TARGET_32_LITTLE) {\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }\n    else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }\n  }" { (ERROR "TVar9 = Parameters::" (assignment_expression "TVar9 = Parameters" identifier = identifier) : :) (expression_statement "size_and_endianness(parameters);" (call_expression "size_and_endianness(parameters)" identifier (argument_list "(parameters)" ( identifier ))) ;) (if_statement "if (TVar9 == TARGET_32_LITTLE) {\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }\n    else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }" if (parenthesized_expression "(TVar9 == TARGET_32_LITTLE)" ( (binary_expression "TVar9 == TARGET_32_LITTLE" identifier == identifier) )) (compound_statement "{\n      print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);\n    }" { (expression_statement "print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx);" (comma_expression "print_input_section_symbols<32,_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx)" (binary_expression "print_input_section_symbols<32" identifier < number_literal) , (binary_expression "_false>(this,(Sized_relobj_file<32,_false> *)relobj,shndx)" identifier > (parenthesized_expression "(this,(Sized_relobj_file<32,_false> *)relobj,shndx)" ( (comma_expression "this,(Sized_relobj_file<32,_false> *)relobj,shndx)" identifier , (parenthesized_expression "(Sized_relobj_file<32,_false> *)relobj,shndx)" ( (comma_expression "Sized_relobj_file<32,_false> *)relobj,shndx" (binary_expression "Sized_relobj_file<32" identifier < number_literal) , (comma_expression "_false> *)relobj,shndx" (binary_expression "_false> *)relobj" identifier > (pointer_expression "*)relobj" * (ERROR ")" )) identifier)) , identifier)) ))) )))) ;) }) (else_clause "else {\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }" else (compound_statement "{\n      if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }\n      print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);\n    }" { (if_statement "if (TVar9 != TARGET_64_LITTLE) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }" if (parenthesized_expression "(TVar9 != TARGET_64_LITTLE)" ( (binary_expression "TVar9 != TARGET_64_LITTLE" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section");" (call_expression "do_gold_unreachable("../../gold/mapfile.cc",0x139,"print_input_section")" identifier (argument_list "("../../gold/mapfile.cc",0x139,"print_input_section")" ( (string_literal ""../../gold/mapfile.cc"" " string_content ") , number_literal , (string_literal ""print_input_section"" " string_content ") ))) ;) })) (expression_statement "print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx);" (comma_expression "print_input_section_symbols<64,_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx)" (binary_expression "print_input_section_symbols<64" identifier < number_literal) , (binary_expression "_false>(this,(Sized_relobj_file<64,_false> *)relobj,shndx)" identifier > (parenthesized_expression "(this,(Sized_relobj_file<64,_false> *)relobj,shndx)" ( (comma_expression "this,(Sized_relobj_file<64,_false> *)relobj,shndx)" identifier , (parenthesized_expression "(Sized_relobj_file<64,_false> *)relobj,shndx)" ( (comma_expression "Sized_relobj_file<64,_false> *)relobj,shndx" (binary_expression "Sized_relobj_file<64" identifier < number_literal) , (comma_expression "_false> *)relobj,shndx" (binary_expression "_false> *)relobj" identifier > (pointer_expression "*)relobj" * (ERROR ")" )) identifier)) , identifier)) ))) )))) ;) }))) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2) {\n    operator_delete(name._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)name._M_dataplus._M_p != &name.field_2" (binary_expression "allocator<char>_>_9\n       *)name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&name.field_2" & (field_expression "name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n    operator_delete(name._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(name._M_dataplus._M_p);" (call_expression "operator_delete(name._M_dataplus._M_p)" identifier (argument_list "(name._M_dataplus._M_p)" ( (field_expression "name._M_dataplus._M_p" (field_expression "name._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    \n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    \n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)" identifier (parameter_list "(undefined4 *param_1,int *param_2,uint param_3)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    \n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "longlong lVar7;" type_identifier identifier ;) (declaration "undefined4 local_7c;" type_identifier identifier ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char *local_68;" primitive_type (pointer_declarator "*local_68" * identifier) ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "char local_60 [18];" primitive_type (array_declarator "local_60 [18]" identifier [ number_literal ]) ;) (declaration "char local_4e [62];" primitive_type (array_declarator "local_4e [62]" identifier [ number_literal ]) ;) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" identifier (argument_list "(0x20,(FILE *)*param_1)" ( number_literal , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "(**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);" (call_expression "(**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x40))" ( (pointer_expression "**(code **)(*param_2 + 0x40)" * (pointer_expression "*(code **)(*param_2 + 0x40)" * (cast_expression "(code **)(*param_2 + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x40)" ( (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(&local_68,param_2,param_3)" ( (pointer_expression "&local_68" & identifier) , identifier , identifier ))) ;) (expression_statement "fputs(local_68,(FILE *)*param_1);" (call_expression "fputs(local_68,(FILE *)*param_1)" identifier (argument_list "(local_68,(FILE *)*param_1)" ( identifier , (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "FUN_000bd900(param_1,local_64 + 1,0x10);" (call_expression "FUN_000bd900(param_1,local_64 + 1,0x10)" identifier (argument_list "(param_1,local_64 + 1,0x10)" ( identifier , (binary_expression "local_64 + 1" identifier + number_literal) , number_literal ))) ;) (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }" if (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3)" ( (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" ( (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) - (subscript_expression "param_2[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }" { (expression_statement "FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);" (call_expression "FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3)" identifier (argument_list "("../../gold/object.h",0x50b,"is_section_included",param_3)" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""is_section_included"" " string_content ") , identifier ))) ;) })) (expression_statement "local_74 = *(int *)(param_2[0xe] + param_3 * 4);" (assignment_expression "local_74 = *(int *)(param_2[0xe] + param_3 * 4)" identifier = (pointer_expression "*(int *)(param_2[0xe] + param_3 * 4)" * (cast_expression "(int *)(param_2[0xe] + param_3 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xe] + param_3 * 4)" ( (binary_expression "param_2[0xe] + param_3 * 4" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) + (binary_expression "param_3 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" if (parenthesized_expression "(local_74 == 0)" ( (binary_expression "local_74 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }" { (expression_statement "iVar3 = param_2[0xd];" (assignment_expression "iVar3 = param_2[0xd]" identifier = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" else (compound_statement "{\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" { (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }" if (parenthesized_expression "(*(code **)(iVar3 + 0x60) != FUN_00055640)" ( (binary_expression "*(code **)(iVar3 + 0x60) != FUN_00055640" (pointer_expression "*(code **)(iVar3 + 0x60)" * (cast_expression "(code **)(iVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x60)" ( (binary_expression "iVar3 + 0x60" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }" { (expression_statement "local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);" (assignment_expression "local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3)" identifier = (call_expression "(**(code **)(iVar3 + 0x60))(param_2,param_3)" (parenthesized_expression "(**(code **)(iVar3 + 0x60))" ( (pointer_expression "**(code **)(iVar3 + 0x60)" * (pointer_expression "*(code **)(iVar3 + 0x60)" * (cast_expression "(code **)(iVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x60)" ( (binary_expression "iVar3 + 0x60" identifier + number_literal) ))))) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (expression_statement "lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);" (assignment_expression "lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3)" identifier = (call_expression "(**(code **)(iVar3 + 0x68))(param_2,param_3)" (parenthesized_expression "(**(code **)(iVar3 + 0x68))" ( (pointer_expression "**(code **)(iVar3 + 0x68)" * (pointer_expression "*(code **)(iVar3 + 0x68)" * (cast_expression "(code **)(iVar3 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x68)" ( (binary_expression "iVar3 + 0x68" identifier + number_literal) ))))) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (if_statement "if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }" if (parenthesized_expression "(lVar7 != -1)" ( (binary_expression "lVar7 != -1" identifier != number_literal) )) (compound_statement "{\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }" { (if_statement "if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }" if (parenthesized_expression "((*(byte *)(local_74 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(local_74 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(local_74 + 0x1c) & 1)" ( (binary_expression "*(byte *)(local_74 + 0x1c) & 1" (pointer_expression "*(byte *)(local_74 + 0x1c)" * (cast_expression "(byte *)(local_74 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 0x1c)" ( (binary_expression "local_74 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }" { (expression_statement "FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);" (call_expression "FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT)" identifier (argument_list "("../../gold/output.h",0xc5,"address",&__DT_PLTGOT)" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") , (pointer_expression "&__DT_PLTGOT" & identifier) ))) ;) })) (expression_statement "lVar7 = lVar7 + *(longlong *)(local_74 + 4);" (assignment_expression "lVar7 = lVar7 + *(longlong *)(local_74 + 4)" identifier = (binary_expression "lVar7 + *(longlong *)(local_74 + 4)" identifier + (pointer_expression "*(longlong *)(local_74 + 4)" * (cast_expression "(longlong *)(local_74 + 4)" ( (type_descriptor "longlong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 4)" ( (binary_expression "local_74 + 4" identifier + number_literal) )))))) ;) })) (expression_statement "iVar3 = param_2[0xd];" (assignment_expression "iVar3 = param_2[0xd]" identifier = (subscript_expression "param_2[0xd]" identifier [ number_literal ])) ;) }))) (if_statement "if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" { (expression_statement "iVar2 = *(int *)(iVar3 + 8);" (assignment_expression "iVar2 = *(int *)(iVar3 + 8)" identifier = (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar3 + 4;" (assignment_expression "iVar5 = iVar3 + 4" identifier = (binary_expression "iVar3 + 4" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 8) != 0)" ( (binary_expression "*(int *)(iVar3 + 8) != 0" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }" { (do_statement "do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);" do (compound_statement "{\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      }" { (while_statement "while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }" while (parenthesized_expression "(iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3)" ( (comma_expression "iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3" (assignment_expression "iVar6 = iVar2" identifier = identifier) , (binary_expression "*(uint *)(iVar6 + 0x10) < param_3" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) < identifier)) )) (compound_statement "{\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }" { (expression_statement "piVar1 = (int *)(iVar6 + 0xc);" (assignment_expression "piVar1 = (int *)(iVar6 + 0xc)" identifier = (cast_expression "(int *)(iVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" identifier = identifier) ;) (if_statement "if (*piVar1 == 0) goto LAB_000be005;" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (goto_statement "goto LAB_000be005;" goto statement_identifier ;)) })) (expression_statement "iVar2 = *(int *)(iVar6 + 8);" (assignment_expression "iVar2 = *(int *)(iVar6 + 8)" identifier = (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" identifier = identifier) ;) }) while (parenthesized_expression "(*(int *)(iVar6 + 8) != 0)" ( (binary_expression "*(int *)(iVar6 + 8) != 0" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) != number_literal) )) ;) (labeled_statement "LAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" statement_identifier : (if_statement "if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" if (parenthesized_expression "((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3))" ( (binary_expression "(iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)" (parenthesized_expression "(iVar3 + 4 != iVar6)" ( (binary_expression "iVar3 + 4 != iVar6" (binary_expression "iVar3 + 4" identifier + number_literal) != identifier) )) && (parenthesized_expression "(*(uint *)(iVar6 + 0x10) <= param_3)" ( (binary_expression "*(uint *)(iVar6 + 0x10) <= param_3" (pointer_expression "*(uint *)(iVar6 + 0x10)" * (cast_expression "(uint *)(iVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) <= identifier) ))) )) (compound_statement "{\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" { (expression_statement "uVar4 = *(undefined4 *)(iVar6 + 0x14);" (assignment_expression "uVar4 = *(undefined4 *)(iVar6 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000be019;" goto statement_identifier ;) }))) })) })) (expression_statement "uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);" (assignment_expression "uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3)" identifier = (call_expression "(**(code **)(*param_2 + 0x3c))(param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x3c))" ( (pointer_expression "**(code **)(*param_2 + 0x3c)" * (pointer_expression "*(code **)(*param_2 + 0x3c)" * (cast_expression "(code **)(*param_2 + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x3c)" ( (binary_expression "*param_2 + 0x3c" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3)" ( identifier , identifier )))) ;) (labeled_statement "LAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);" statement_identifier : (expression_statement "local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);" (assignment_expression "local_78 = (undefined4)((ulonglong)lVar7 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)lVar7 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar7 >> 0x20)" ( (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_7c = (undefined4)lVar7;" (assignment_expression "local_7c = (undefined4)lVar7" identifier = (cast_expression "(undefined4)lVar7" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "snprintf(local_4e,0x32,"0x%llx",uVar4,0);" (call_expression "snprintf(local_4e,0x32,"0x%llx",uVar4,0)" identifier (argument_list "(local_4e,0x32,"0x%llx",uVar4,0)" ( identifier , number_literal , (string_literal ""0x%llx"" " string_content ") , identifier , number_literal ))) ;) (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }" { (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1])" identifier (argument_list "("../../gold/parameters.h",0x69,"target",param_2[1])" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""target"" " string_content ") , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" * (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 0xc)" ( (binary_expression "DAT_0033f2f0 + 0xc" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "iVar2 = iVar3 + 3;" (assignment_expression "iVar2 = iVar3 + 3" identifier = (binary_expression "iVar3 + 3" identifier + number_literal)) ;) (if_statement "if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n    iVar2 = iVar3;\n  }" { (expression_statement "iVar2 = iVar3;" (assignment_expression "iVar2 = iVar3" identifier = identifier) ;) })) (expression_statement "fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);" (call_expression "fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1])" identifier (argument_list "((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1])" ( (cast_expression "(FILE *)*param_1" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) , (string_literal ""0x%0*llx %10s %s\n"" " string_content escape_sequence ") , (binary_expression "iVar2 >> 2" identifier >> number_literal) , identifier , identifier , identifier , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))) ;) (if_statement "if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }" if (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }" { (expression_statement "iVar3 = FUN_00119fe0(DAT_0033f2f0);" (assignment_expression "iVar3 = FUN_00119fe0(DAT_0033f2f0)" identifier = (call_expression "FUN_00119fe0(DAT_0033f2f0)" identifier (argument_list "(DAT_0033f2f0)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_000be340(param_1,param_2,param_3);\n    }" { (expression_statement "FUN_000be340(param_1,param_2,param_3);" (call_expression "FUN_000be340(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" else (compound_statement "{\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" { (if_statement "if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }" if (parenthesized_expression "(iVar3 != 2)" ( (binary_expression "iVar3 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }" { (expression_statement "FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);" (call_expression "FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3)" identifier (argument_list "("../../gold/mapfile.cc",0x139,"print_input_section",iVar3)" ( (string_literal ""../../gold/mapfile.cc"" " string_content ") , number_literal , (string_literal ""print_input_section"" " string_content ") , identifier ))) ;) })) (expression_statement "FUN_000be510(param_1,param_2,param_3);" (call_expression "FUN_000be510(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }" if (parenthesized_expression "(local_68 != local_60)" ( (binary_expression "local_68 != local_60" identifier != identifier) )) (compound_statement "{\n    FUN_001ac470(local_68);\n  }" { (expression_statement "FUN_001ac470(local_68);" (call_expression "FUN_001ac470(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT + LIT) )))) != IDENT) )) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (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 = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) ))) )) (compound_statement { (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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , (string_literal " string_content escape_sequence ") , (binary_expression IDENT >> LIT) , IDENT , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    \n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000bdf00(undefined4 *param_1,int *param_2,uint param_3)" (identifier "FUN_000bdf00") (parameter_list "(undefined4 *param_1,int *param_2,uint param_3)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  int iVar5;\n  int iVar6;\n  longlong lVar7;\n  undefined4 local_7c;\n  undefined4 local_78;\n  int local_74;\n  char *local_68;\n  int local_64;\n  char local_60 [18];\n  char local_4e [62];\n  \n  putc(0x20,(FILE *)*param_1);\n  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);\n                    \n  fputs(local_68,(FILE *)*param_1);\n  FUN_000bd900(param_1,local_64 + 1,0x10);\n  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }\n  local_74 = *(int *)(param_2[0xe] + param_3 * 4);\n  if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }\n  if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }\n  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);\nLAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);\n  local_7c = (undefined4)lVar7;\n  snprintf(local_4e,0x32,"0x%llx",uVar4,0);\n  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }\n  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);\n  iVar2 = iVar3 + 3;\n  if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }\n  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);\n  if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }\n  if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "longlong lVar7;" (type_identifier "longlong") (identifier "lVar7") (; ";")) (declaration "undefined4 local_7c;" (type_identifier "undefined4") (identifier "local_7c") (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "char *local_68;" (primitive_type "char") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "char local_60 [18];" (primitive_type "char") (array_declarator "local_60 [18]" (identifier "local_60") ([ "[") (number_literal "18") (] "]")) (; ";")) (declaration "char local_4e [62];" (primitive_type "char") (array_declarator "local_4e [62]" (identifier "local_4e") ([ "[") (number_literal "62") (] "]")) (; ";")) (expression_statement "putc(0x20,(FILE *)*param_1);" (call_expression "putc(0x20,(FILE *)*param_1)" (identifier "putc") (argument_list "(0x20,(FILE *)*param_1)" (( "(") (number_literal "0x20") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (expression_statement "(**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);" (call_expression "(**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x40))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x40)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x40)" (* "*") (cast_expression "(code **)(*param_2 + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x40)" (( "(") (binary_expression "*param_2 + 0x40" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "(&local_68,param_2,param_3)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "fputs(local_68,(FILE *)*param_1);" (call_expression "fputs(local_68,(FILE *)*param_1)" (identifier "fputs") (argument_list "(local_68,(FILE *)*param_1)" (( "(") (identifier "local_68") (, ",") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (expression_statement "FUN_000bd900(param_1,local_64 + 1,0x10);" (call_expression "FUN_000bd900(param_1,local_64 + 1,0x10)" (identifier "FUN_000bd900") (argument_list "(param_1,local_64 + 1,0x10)" (( "(") (identifier "param_1") (, ",") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1")) (, ",") (number_literal "0x10") () ")"))) (; ";")) (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }" (if "if") (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3)" (( "(") (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" (( "(") (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "param_3")) () ")")) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);\n  }" ({ "{") (expression_statement "FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);" (call_expression "FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3)" (identifier "FUN_0008b620") (argument_list "("../../gold/object.h",0x50b,"is_section_included",param_3)" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x50b") (, ",") (string_literal ""is_section_included"" (" """) (string_content "is_section_included") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (expression_statement "local_74 = *(int *)(param_2[0xe] + param_3 * 4);" (assignment_expression "local_74 = *(int *)(param_2[0xe] + param_3 * 4)" (identifier "local_74") (= "=") (pointer_expression "*(int *)(param_2[0xe] + param_3 * 4)" (* "*") (cast_expression "(int *)(param_2[0xe] + param_3 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0xe] + param_3 * 4)" (( "(") (binary_expression "param_2[0xe] + param_3 * 4" (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "param_3 * 4" (identifier "param_3") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (local_74 == 0) {\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }\n  else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" (if "if") (parenthesized_expression "(local_74 == 0)" (( "(") (binary_expression "local_74 == 0" (identifier "local_74") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = param_2[0xd];\n    lVar7 = 0;\n  }" ({ "{") (expression_statement "iVar3 = param_2[0xd];" (assignment_expression "iVar3 = param_2[0xd]" (identifier "iVar3") (= "=") (subscript_expression "param_2[0xd]" (identifier "param_2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "lVar7 = 0;" (assignment_expression "lVar7 = 0" (identifier "lVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" (else "else") (compound_statement "{\n    iVar3 = *param_2;\n    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }\n    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);\n    if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }\n    iVar3 = param_2[0xd];\n  }" ({ "{") (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (*(code **)(iVar3 + 0x60) != FUN_00055640) {\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }" (if "if") (parenthesized_expression "(*(code **)(iVar3 + 0x60) != FUN_00055640)" (( "(") (binary_expression "*(code **)(iVar3 + 0x60) != FUN_00055640" (pointer_expression "*(code **)(iVar3 + 0x60)" (* "*") (cast_expression "(code **)(iVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x60)" (( "(") (binary_expression "iVar3 + 0x60" (identifier "iVar3") (+ "+") (number_literal "0x60")) () ")")))) (!= "!=") (identifier "FUN_00055640")) () ")")) (compound_statement "{\n      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);\n      iVar3 = *param_2;\n    }" ({ "{") (expression_statement "local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);" (assignment_expression "local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3)" (identifier "local_74") (= "=") (call_expression "(**(code **)(iVar3 + 0x60))(param_2,param_3)" (parenthesized_expression "(**(code **)(iVar3 + 0x60))" (( "(") (pointer_expression "**(code **)(iVar3 + 0x60)" (* "*") (pointer_expression "*(code **)(iVar3 + 0x60)" (* "*") (cast_expression "(code **)(iVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x60)" (( "(") (binary_expression "iVar3 + 0x60" (identifier "iVar3") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (expression_statement "lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);" (assignment_expression "lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(iVar3 + 0x68))(param_2,param_3)" (parenthesized_expression "(**(code **)(iVar3 + 0x68))" (( "(") (pointer_expression "**(code **)(iVar3 + 0x68)" (* "*") (pointer_expression "*(code **)(iVar3 + 0x68)" (* "*") (cast_expression "(code **)(iVar3 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x68)" (( "(") (binary_expression "iVar3 + 0x68" (identifier "iVar3") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (lVar7 != -1) {\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }" (if "if") (parenthesized_expression "(lVar7 != -1)" (( "(") (binary_expression "lVar7 != -1" (identifier "lVar7") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }\n      lVar7 = lVar7 + *(longlong *)(local_74 + 4);\n    }" ({ "{") (if_statement "if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }" (if "if") (parenthesized_expression "((*(byte *)(local_74 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(local_74 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(local_74 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(local_74 + 0x1c) & 1" (pointer_expression "*(byte *)(local_74 + 0x1c)" (* "*") (cast_expression "(byte *)(local_74 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74 + 0x1c)" (( "(") (binary_expression "local_74 + 0x1c" (identifier "local_74") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);" (call_expression "FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT)" (identifier "FUN_0008b620") (argument_list "("../../gold/output.h",0xc5,"address",&__DT_PLTGOT)" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) (, ",") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT")) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar7 = lVar7 + *(longlong *)(local_74 + 4);" (assignment_expression "lVar7 = lVar7 + *(longlong *)(local_74 + 4)" (identifier "lVar7") (= "=") (binary_expression "lVar7 + *(longlong *)(local_74 + 4)" (identifier "lVar7") (+ "+") (pointer_expression "*(longlong *)(local_74 + 4)" (* "*") (cast_expression "(longlong *)(local_74 + 4)" (( "(") (type_descriptor "longlong *" (type_identifier "longlong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74 + 4)" (( "(") (binary_expression "local_74 + 4" (identifier "local_74") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}"))) (expression_statement "iVar3 = param_2[0xd];" (assignment_expression "iVar3 = param_2[0xd]" (identifier "iVar3") (= "=") (subscript_expression "param_2[0xd]" (identifier "param_2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (} "}")))) (if_statement "if (iVar3 != 0) {\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(iVar3 + 8);\n    iVar5 = iVar3 + 4;\n    if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(iVar3 + 8);" (assignment_expression "iVar2 = *(int *)(iVar3 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar3 + 4;" (assignment_expression "iVar5 = iVar3 + 4" (identifier "iVar5") (= "=") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 8) != 0) {\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar3 + 8) != 0" (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);\nLAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }\n    }" ({ "{") (do_statement "do {\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      } while (*(int *)(iVar6 + 8) != 0);" (do "do") (compound_statement "{\n        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }\n        iVar2 = *(int *)(iVar6 + 8);\n        iVar5 = iVar6;\n      }" ({ "{") (while_statement "while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }" (while "while") (parenthesized_expression "(iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3)" (( "(") (comma_expression "iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3" (assignment_expression "iVar6 = iVar2" (identifier "iVar6") (= "=") (identifier "iVar2")) (, ",") (binary_expression "*(uint *)(iVar6 + 0x10) < param_3" (pointer_expression "*(uint *)(iVar6 + 0x10)" (* "*") (cast_expression "(uint *)(iVar6 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (identifier "param_3"))) () ")")) (compound_statement "{\n          piVar1 = (int *)(iVar6 + 0xc);\n          iVar2 = *piVar1;\n          iVar6 = iVar5;\n          if (*piVar1 == 0) goto LAB_000be005;\n        }" ({ "{") (expression_statement "piVar1 = (int *)(iVar6 + 0xc);" (assignment_expression "piVar1 = (int *)(iVar6 + 0xc)" (identifier "piVar1") (= "=") (cast_expression "(int *)(iVar6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" (identifier "iVar2") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "iVar6 = iVar5;" (assignment_expression "iVar6 = iVar5" (identifier "iVar6") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (*piVar1 == 0) goto LAB_000be005;" (if "if") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000be005;" (goto "goto") (statement_identifier "LAB_000be005") (; ";"))) (} "}"))) (expression_statement "iVar2 = *(int *)(iVar6 + 8);" (assignment_expression "iVar2 = *(int *)(iVar6 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar5 = iVar6;" (assignment_expression "iVar5 = iVar6" (identifier "iVar5") (= "=") (identifier "iVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar6 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 8) != 0" (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_000be005:\n      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" (statement_identifier "LAB_000be005") (: ":") (if_statement "if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" (if "if") (parenthesized_expression "((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3))" (( "(") (binary_expression "(iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)" (parenthesized_expression "(iVar3 + 4 != iVar6)" (( "(") (binary_expression "iVar3 + 4 != iVar6" (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) (!= "!=") (identifier "iVar6")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(iVar6 + 0x10) <= param_3)" (( "(") (binary_expression "*(uint *)(iVar6 + 0x10) <= param_3" (pointer_expression "*(uint *)(iVar6 + 0x10)" (* "*") (cast_expression "(uint *)(iVar6 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (identifier "param_3")) () ")"))) () ")")) (compound_statement "{\n        uVar4 = *(undefined4 *)(iVar6 + 0x14);\n        goto LAB_000be019;\n      }" ({ "{") (expression_statement "uVar4 = *(undefined4 *)(iVar6 + 0x14);" (assignment_expression "uVar4 = *(undefined4 *)(iVar6 + 0x14)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (goto_statement "goto LAB_000be019;" (goto "goto") (statement_identifier "LAB_000be019") (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);" (assignment_expression "uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(*param_2 + 0x3c))(param_2,param_3)" (parenthesized_expression "(**(code **)(*param_2 + 0x3c))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x3c)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x3c)" (* "*") (cast_expression "(code **)(*param_2 + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x3c)" (( "(") (binary_expression "*param_2 + 0x3c" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(param_2,param_3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (labeled_statement "LAB_000be019:\n  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);" (statement_identifier "LAB_000be019") (: ":") (expression_statement "local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);" (assignment_expression "local_78 = (undefined4)((ulonglong)lVar7 >> 0x20)" (identifier "local_78") (= "=") (call_expression "(undefined4)((ulonglong)lVar7 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)lVar7 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar7 >> 0x20" (cast_expression "(ulonglong)lVar7" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar7")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_7c = (undefined4)lVar7;" (assignment_expression "local_7c = (undefined4)lVar7" (identifier "local_7c") (= "=") (cast_expression "(undefined4)lVar7" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "lVar7"))) (; ";")) (expression_statement "snprintf(local_4e,0x32,"0x%llx",uVar4,0);" (call_expression "snprintf(local_4e,0x32,"0x%llx",uVar4,0)" (identifier "snprintf") (argument_list "(local_4e,0x32,"0x%llx",uVar4,0)" (( "(") (identifier "local_4e") (, ",") (number_literal "0x32") (, ",") (string_literal ""0x%llx"" (" """) (string_content "0x%llx") (" """)) (, ",") (identifier "uVar4") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);\n  }" ({ "{") (expression_statement "FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);" (call_expression "FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1])" (identifier "FUN_0008b620") (argument_list "("../../gold/parameters.h",0x69,"target",param_2[1])" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x69") (, ",") (string_literal ""target"" (" """) (string_content "target") (" """)) (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);" (assignment_expression "iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (* "*") (pointer_expression "*(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (* "*") (cast_expression "(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 0xc) + 4" (pointer_expression "*(int *)(DAT_0033f2f0 + 0xc)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 0xc)" (( "(") (binary_expression "DAT_0033f2f0 + 0xc" (identifier "DAT_0033f2f0") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "iVar2 = iVar3 + 3;" (assignment_expression "iVar2 = iVar3 + 3" (identifier "iVar2") (= "=") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (-1 < iVar3) {\n    iVar2 = iVar3;\n  }" (if "if") (parenthesized_expression "(-1 < iVar3)" (( "(") (binary_expression "-1 < iVar3" (number_literal "-1") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    iVar2 = iVar3;\n  }" ({ "{") (expression_statement "iVar2 = iVar3;" (assignment_expression "iVar2 = iVar3" (identifier "iVar2") (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);" (call_expression "fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1])" (identifier "fprintf") (argument_list "((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1])" (( "(") (cast_expression "(FILE *)*param_1" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (, ",") (string_literal ""0x%0*llx %10s %s\n"" (" """) (string_content "0x%0*llx %10s %s") (escape_sequence "\n") (" """)) (, ",") (binary_expression "iVar2 >> 2" (identifier "iVar2") (>> ">>") (number_literal "2")) (, ",") (identifier "local_7c") (, ",") (identifier "local_78") (, ",") (identifier "local_4e") (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (if_statement "if (local_74 != 0) {\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }" (if "if") (parenthesized_expression "(local_74 != 0)" (( "(") (binary_expression "local_74 != 0" (identifier "local_74") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = FUN_00119fe0(DAT_0033f2f0);\n    if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }\n  }" ({ "{") (expression_statement "iVar3 = FUN_00119fe0(DAT_0033f2f0);" (assignment_expression "iVar3 = FUN_00119fe0(DAT_0033f2f0)" (identifier "iVar3") (= "=") (call_expression "FUN_00119fe0(DAT_0033f2f0)" (identifier "FUN_00119fe0") (argument_list "(DAT_0033f2f0)" (( "(") (identifier "DAT_0033f2f0") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      FUN_000be340(param_1,param_2,param_3);\n    }\n    else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000be340(param_1,param_2,param_3);\n    }" ({ "{") (expression_statement "FUN_000be340(param_1,param_2,param_3);" (call_expression "FUN_000be340(param_1,param_2,param_3)" (identifier "FUN_000be340") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" (else "else") (compound_statement "{\n      if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }\n      FUN_000be510(param_1,param_2,param_3);\n    }" ({ "{") (if_statement "if (iVar3 != 2) {\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }" (if "if") (parenthesized_expression "(iVar3 != 2)" (( "(") (binary_expression "iVar3 != 2" (identifier "iVar3") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);\n      }" ({ "{") (expression_statement "FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);" (call_expression "FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3)" (identifier "FUN_0008b620") (argument_list "("../../gold/mapfile.cc",0x139,"print_input_section",iVar3)" (( "(") (string_literal ""../../gold/mapfile.cc"" (" """) (string_content "../../gold/mapfile.cc") (" """)) (, ",") (number_literal "0x139") (, ",") (string_literal ""print_input_section"" (" """) (string_content "print_input_section") (" """)) (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000be510(param_1,param_2,param_3);" (call_expression "FUN_000be510(param_1,param_2,param_3)" (identifier "FUN_000be510") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_68 != local_60) {\n    FUN_001ac470(local_68);\n  }" (if "if") (parenthesized_expression "(local_68 != local_60)" (( "(") (binary_expression "local_68 != local_60" (identifier "local_68") (!= "!=") (identifier "local_60")) () ")")) (compound_statement "{\n    FUN_001ac470(local_68);\n  }" ({ "{") (expression_statement "FUN_001ac470(local_68);" (call_expression "FUN_001ac470(local_68)" (identifier "FUN_001ac470") (argument_list "(local_68)" (( "(") (identifier "local_68") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void print_input_section(Mapfile * this, Relobj * relobj, uint shndx)
    */

void __thiscall var_4::type_1::function_1(type_1 *this,type_2 *relobj,type_3 var_7)

{
  type_4 *var_16;
  type_5 *pp_Var2;
  type_6 ppOVar3;
  type_3 var_13;
  type_7 *var_14;
  type_5 var_15;
  type_8 **pp_Var7;
  int var_20;
  type_9 var_22;
  int var_18;
  type_3 var_10;
  type_5 p_Var11;
  type_5 p_Var12;
  bool bVar13;
  type_3 var_11;
  type_3 local_78;
  type_10 *var_9;
  type_11 name;
  char sizebuf [50];
  
  var_1(0x20,(type_12 *)this->map_file_);
  (*(relobj->super_Object)._vptr_Object[0x10])(&name,relobj,var_7);
                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */
  var_2(name._M_dataplus._M_p,(type_12 *)this->map_file_);
  var_3(this,name._M_string_length + 1,0x10);
  ppOVar3 = (relobj->output_sections_).
            super__Vector_base<var_4::type_10*,var_5::var_28<var_4::type_10*>var_6>.
            _M_impl._M_start;
  if ((type_3)((int)(relobj->output_sections_).
                  super__Vector_base<var_4::type_10*,var_5::var_28<var_4::type_10*>var_6>.
                  _M_impl._M_finish - (int)ppOVar3 >> 2) <= var_7) {
                    /* WARNING: Subroutine does not return */
    var_8("../../gold/object.h",0x50b,"is_section_included");
  }
  var_9 = ppOVar3[var_7];
  if (var_9 == (type_10 *)0x0) {
    var_14 = (relobj->super_Object).compressed_sections_;
    var_11 = 0;
    local_78 = 0;
  }
  else {
    pp_Var7 = (relobj->super_Object)._vptr_Object;
    if (pp_Var7[0x18] != type_2::do_output_section) {
      var_9 = (type_10 *)(*pp_Var7[0x18])(relobj,var_7);
      pp_Var7 = (relobj->super_Object)._vptr_Object;
    }
    var_11 = (*pp_Var7[0x1a])(relobj,var_7);
    local_78 = var_10;
    if ((var_10 & var_11) != 0xffffffff) {
      if (((var_9->super_Output_data).field_0x1c & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        var_8("../../gold/output.h",0xc5,"address");
      }
      var_13 = (type_3)(var_9->super_Output_data).address_;
      bVar13 = var_12(var_11,var_13);
      var_11 = var_11 + var_13;
      local_78 = var_10 + *(int *)((int)&(var_9->super_Output_data).address_ + 4) +
                 (type_3)bVar13;
    }
    var_14 = (relobj->super_Object).compressed_sections_;
  }
  if (var_14 != (type_7 *)0x0) {
    var_16 = &(var_14->_M_t)._M_impl.super__Rb_tree_header;
    var_15 = (var_14->_M_t)._M_impl.super__Rb_tree_header._M_header._M_parent;
    p_Var11 = &var_16->_M_header;
    if (var_15 != (type_5)0x0) {
      do {
        while (p_Var12 = var_15, p_Var12[1]._M_color < var_7) {
          pp_Var2 = &p_Var12->_M_right;
          var_15 = *pp_Var2;
          p_Var12 = p_Var11;
          if (*pp_Var2 == (type_5)0x0) goto LAB_000be005;
        }
        var_15 = p_Var12->_M_left;
        p_Var11 = p_Var12;
      } while (p_Var12->_M_left != (type_5)0x0);
LAB_000be005:
      if ((var_16 != (type_4 *)p_Var12) &&
         (((type_4 *)p_Var12)->_M_node_count <= var_7)) {
        var_18 = *(int *)((int)p_Var12 + 0x14);
        goto LAB_000be019;
      }
    }
  }
  var_18 = (*(relobj->super_Object)._vptr_Object[0xf])(relobj,var_7);
LAB_000be019:
  var_17(sizebuf,0x32,"0x%llx",var_18,0);
  if (parameters->target_ == (type_13 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_8("../../gold/parameters.h",0x69,"target");
  }
  var_18 = parameters->target_->pti_->size;
  var_20 = var_18 + 3;
  if (-1 < var_18) {
    var_20 = var_18;
  }
  var_19((type_12 *)this->map_file_,"0x%0*llx %10s %s\n",var_20 >> 2,var_11,local_78,sizebuf,
          (relobj->super_Object).name_._M_dataplus._M_p);
  if (var_9 != (type_10 *)0x0) {
    var_22 = Parameters::var_21(parameters);
    if (var_22 == var_23) {
      var_24<32,var_25>(this,(var_26<32,var_25> *)relobj,var_7);
    }
    else {
      if (var_22 != var_27) {
                    /* WARNING: Subroutine does not return */
        var_8("../../gold/mapfile.cc",0x139,"print_input_section");
      }
      var_24<64,var_25>(this,(var_26<64,var_25> *)relobj,var_7);
    }
  }
  if ((anon_union_16_2_edb7204a_for_basic_string<var_29,var_5::char_traits<var_29>,var_5::var_28<var_29>var_6>var_30
       *)name._M_dataplus._M_p != &name.field_2) {
    var_31(name._M_dataplus._M_p);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))))) right: (identifier))) consequence: (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (string_literal (string_content)) (identifier) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) (string_literal (string_content) (escape_sequence)) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(undefined4 *param_1,int *param_2,uint param_3)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  int iVar5;
  int iVar6;
  longlong lVar7;
  undefined4 local_7c;
  undefined4 local_78;
  int local_74;
  char *local_68;
  int local_64;
  char local_60 [18];
  char local_4e [62];
  
  putc(0x20,(FILE *)*param_1);
  (**(code **)(*param_2 + 0x40))(&local_68,param_2,param_3);
                    /* try { // try from 000bdf47 to 000be1ad has its CatchHandler @ 000be1ae */
  fputs(local_68,(FILE *)*param_1);
  FUN_000bd900(param_1,local_64 + 1,0x10);
  if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_3) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/object.h",0x50b,"is_section_included",param_3);
  }
  local_74 = *(int *)(param_2[0xe] + param_3 * 4);
  if (local_74 == 0) {
    iVar3 = param_2[0xd];
    lVar7 = 0;
  }
  else {
    iVar3 = *param_2;
    if (*(code **)(iVar3 + 0x60) != FUN_00055640) {
      local_74 = (**(code **)(iVar3 + 0x60))(param_2,param_3);
      iVar3 = *param_2;
    }
    lVar7 = (**(code **)(iVar3 + 0x68))(param_2,param_3);
    if (lVar7 != -1) {
      if ((*(byte *)(local_74 + 0x1c) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/output.h",0xc5,"address",&__DT_PLTGOT);
      }
      lVar7 = lVar7 + *(longlong *)(local_74 + 4);
    }
    iVar3 = param_2[0xd];
  }
  if (iVar3 != 0) {
    iVar2 = *(int *)(iVar3 + 8);
    iVar5 = iVar3 + 4;
    if (*(int *)(iVar3 + 8) != 0) {
      do {
        while (iVar6 = iVar2, *(uint *)(iVar6 + 0x10) < param_3) {
          piVar1 = (int *)(iVar6 + 0xc);
          iVar2 = *piVar1;
          iVar6 = iVar5;
          if (*piVar1 == 0) goto LAB_000be005;
        }
        iVar2 = *(int *)(iVar6 + 8);
        iVar5 = iVar6;
      } while (*(int *)(iVar6 + 8) != 0);
LAB_000be005:
      if ((iVar3 + 4 != iVar6) && (*(uint *)(iVar6 + 0x10) <= param_3)) {
        uVar4 = *(undefined4 *)(iVar6 + 0x14);
        goto LAB_000be019;
      }
    }
  }
  uVar4 = (**(code **)(*param_2 + 0x3c))(param_2,param_3);
LAB_000be019:
  local_78 = (undefined4)((ulonglong)lVar7 >> 0x20);
  local_7c = (undefined4)lVar7;
  snprintf(local_4e,0x32,"0x%llx",uVar4,0);
  if (*(int *)(DAT_0033f2f0 + 0xc) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_0008b620("../../gold/parameters.h",0x69,"target",param_2[1]);
  }
  iVar3 = **(int **)(*(int *)(DAT_0033f2f0 + 0xc) + 4);
  iVar2 = iVar3 + 3;
  if (-1 < iVar3) {
    iVar2 = iVar3;
  }
  fprintf((FILE *)*param_1,"0x%0*llx %10s %s\n",iVar2 >> 2,local_7c,local_78,local_4e,param_2[1]);
  if (local_74 != 0) {
    iVar3 = FUN_00119fe0(DAT_0033f2f0);
    if (iVar3 == 0) {
      FUN_000be340(param_1,param_2,param_3);
    }
    else {
      if (iVar3 != 2) {
                    /* WARNING: Subroutine does not return */
        FUN_0008b620("../../gold/mapfile.cc",0x139,"print_input_section",iVar3);
      }
      FUN_000be510(param_1,param_2,param_3);
    }
  }
  if (local_68 != local_60) {
    FUN_001ac470(local_68);
  }
  return;
}

