
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */
/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */
/* DWARF original prototype: void assign_local_dynsym_offsets(Layout * this, Input_objects *
   input_objects) */

void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *input_objects)

{
  longlong lVar1;
  Input_objects *pIVar2;
  Relobj *pRVar3;
  uint uVar4;
  int iVar5;
  undefined *puVar6;
  int iVar7;
  undefined4 *puVar8;
  int iVar9;
  undefined4 *in_a3;
  Input_objects *pIVar10;
  int *piVar11;
  int iVar12;
  pointer ppRVar13;
  Output_section *pOVar14;
  undefined *puVar15;
  code *pcVar16;
  
  pOVar14 = this->dynsym_section_;
  if (pOVar14 != (Output_section *)0x0) {
    if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {
      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;
      puVar15 = PTR_do_gold_unreachable_004c1a30;
      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);
      piVar11 = *(int **)(puVar6 + 0x198);
      if (piVar11 != (int *)0x0) {
        if ((-1 < piVar11[8] << 1) &&
           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {
          iVar9 = 0x163;
          iVar12 = (**(code **)(puVar15 + 0x30ebe4))
                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,
                              *(int *)(puVar15 + 0x30ec04) + 0x4598);
LAB_001b2f1c:
          *(int *)(iVar12 + 0x34) = iVar9;
          return;
        }
        iVar12 = *(int *)(puVar6 + 0x194);
        if (iVar12 != 0) {
          iVar9 = piVar11[5];
          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {
            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;
            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);
          }
          else {
            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);
            if (iVar5 == 0x20) goto LAB_001b2f1c;
            iVar7 = *(int *)(puVar15 + 0x30ec04);
            if (iVar5 == 0x40) {
              *(int *)(iVar12 + 0x38) = piVar11[4];
              *(int *)(iVar12 + 0x3c) = iVar9;
              return;
            }
          }
          iVar12 = 0x1502;
          pcVar16 = *(code **)(puVar15 + 0x30ebe4);
          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;
          puVar8 = (undefined4 *)(iVar7 + 0x320c);
          (*pcVar16)(puVar8,0x1502,iVar9);
          if (iVar12 < 1) {
            return;
          }
          iVar7 = 0;
          while( true ) {
            iVar7 = iVar7 + 1;
            if ((int)puVar8[1] < 1) {
              iVar5 = (**(code **)(pcVar16 + 0x312b00))();
            }
            else {
              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);
            }
            if (iVar5 == 0) break;
            puVar8 = puVar8 + 4;
            if (iVar12 == iVar7) {
              return;
            }
          }
          *in_a3 = puVar8[3];
          return;
        }
      }
      return;
    }
    pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);
    pIVar10 = (Input_objects *)
              ((int)&(pIVar2->relobj_list_).
                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.
                     _M_start + (int)pOVar14->entsize_);
    ppRVar13 = (input_objects->relobj_list_).
               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;
    iVar12 = (uint)(pIVar10 < pIVar2) +
             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;
    pIVar2 = input_objects;
    if (ppRVar13 !=
        (input_objects->relobj_list_).
        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {
      do {
        pRVar3 = *ppRVar13;
        ppRVar13 = ppRVar13 + 1;
        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);
        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;
        pIVar2 = (Input_objects *)lVar1;
        pIVar10 = (Input_objects *)
                  ((int)&(pIVar2->relobj_list_).
                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.
                         _M_start +
                  (int)&(pIVar10->relobj_list_).
                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.
                        _M_start);
        iVar12 = (uint)(pIVar10 < pIVar2) +
                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;
      } while ((input_objects->relobj_list_).
               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish
               != ppRVar13);
    }
  }
  return;
}



/* gold::Layout::assign_local_dynsym_offsets(gold::Input_objects const*) */

void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)

{
  longlong lVar1;
  int *piVar2;
  uint uVar3;
  Input_objects *pIVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  Input_objects *pIVar8;
  
  iVar7 = *(int *)(this + 0x188);
  if (iVar7 != 0) {
    if (-1 < *(int *)(iVar7 + 0x20) << 2) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
                 PTR_s__s_004c1a50 + 0x47d4);
      return;
    }
    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);
    puVar6 = *(undefined4 **)param_1;
    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +
            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);
    pIVar8 = param_1;
    if (puVar6 != *(undefined4 **)(param_1 + 4)) {
      do {
        piVar2 = (int *)*puVar6;
        puVar6 = puVar6 + 1;
        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);
        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;
        pIVar8 = (Input_objects *)lVar1;
        pIVar4 = pIVar8 + (int)pIVar4;
        iVar5 = (uint)(pIVar4 < pIVar8) +
                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;
      } while (*(undefined4 **)(param_1 + 4) != puVar6);
    }
  }
  return;
}


lui gp,0x31
addiu gp,gp,0x64f8
addu gp,gp,t9
addiu sp,sp,-0x30
sw s3,0x24(sp)
sw gp,0x10(sp)
sw ra,0x2c(sp)
sw s4,0x28(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
lw s3,0x188(a0)
beq s3,zero,0x001b2e10
_nop
lw v0,0x20(s3)
ext v0,v0,0x1d,0x1
beq v0,zero,0x001b2e30
_or s4,a1,zero
lw v0,0x1c(s3)
lw s0,0x34(s3)
lw s1,0x18(s3)
lw a0,0x30(s3)
addu s0,v0,s0
lw s2,0x0(a1)
lw v1,0x4(a1)
addu s1,s1,a0
sltu v0,s0,v0
beq s2,v1,0x001b2e10
_addu s1,v0,s1
lw v0,0x0(s2)
or a2,s1,zero
or a3,s0,zero
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0xd4(v0)
jalr t9
_addiu s2,s2,0x4
lw a0,0x34(s3)
lw a2,0x30(s3)
lw v1,0x4(s4)
multu a0,v0
mflo a1
mfhi a0
mul a3,a2,v0
addu s0,a1,s0
addu a0,a3,a0
sltu v0,s0,a1
addu s1,a0,s1
bne v1,s2,0x001b2dbc
_addu s1,v0,s1
lw ra,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x30
lw a2,-0x77f0(gp)
li a1,0xe3
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x47d4
jalr t9
_addiu a0,a0,0x3574
(translation_unit "/* gold::Layout::assign_local_dynsym_offsets(gold::Input_objects const*) */\n\nvoid __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)\n\n{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)\n\n{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)" identifier (parameter_list "(Layout *this,Input_objects *param_1)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Input_objects *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Input_objects *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "Input_objects *pIVar8;" type_identifier (pointer_declarator "*pIVar8" * identifier) ;) (expression_statement "iVar7 = *(int *)(this + 0x188);" (assignment_expression "iVar7 = *(int *)(this + 0x188)" identifier = (pointer_expression "*(int *)(this + 0x188)" * (cast_expression "(int *)(this + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x188)" ( (binary_expression "this + 0x188" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }" { (if_statement "if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }" if (parenthesized_expression "(-1 < *(int *)(iVar7 + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(iVar7 + 0x20) << 2" number_literal < (binary_expression "*(int *)(iVar7 + 0x20) << 2" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x47d4" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);" (assignment_expression "pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34)" identifier = (binary_expression "*(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34)" (pointer_expression "*(Input_objects **)(iVar7 + 0x1c)" * (cast_expression "(Input_objects **)(iVar7 + 0x1c)" ( (type_descriptor "Input_objects **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar7 + 0x34)" * (cast_expression "(int *)(iVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "puVar6 = *(undefined4 **)param_1;" (assignment_expression "puVar6 = *(undefined4 **)param_1" identifier = (pointer_expression "*(undefined4 **)param_1" * (cast_expression "(undefined4 **)param_1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);" (assignment_expression "iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30)" identifier = (binary_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30)" (binary_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18)" (call_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pIVar4 < *(Input_objects **)(iVar7 + 0x1c))" ( (binary_expression "pIVar4 < *(Input_objects **)(iVar7 + 0x1c)" identifier < (pointer_expression "*(Input_objects **)(iVar7 + 0x1c)" * (cast_expression "(Input_objects **)(iVar7 + 0x1c)" ( (type_descriptor "Input_objects **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar7 + 0x30)" * (cast_expression "(int *)(iVar7 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))))) ;) (expression_statement "pIVar8 = param_1;" (assignment_expression "pIVar8 = param_1" identifier = identifier) ;) (if_statement "if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }" if (parenthesized_expression "(puVar6 != *(undefined4 **)(param_1 + 4))" ( (binary_expression "puVar6 != *(undefined4 **)(param_1 + 4)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }" { (do_statement "do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);" do (compound_statement "{\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      }" { (expression_statement "piVar2 = (int *)*puVar6;" (assignment_expression "piVar2 = (int *)*puVar6" identifier = (cast_expression "(int *)*puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);" (assignment_expression "uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4)" identifier = (call_expression "(**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4)" (parenthesized_expression "(**(code **)(*piVar2 + 0xd4))" ( (pointer_expression "**(code **)(*piVar2 + 0xd4)" * (pointer_expression "*(code **)(*piVar2 + 0xd4)" * (cast_expression "(code **)(*piVar2 + 0xd4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0xd4)" ( (binary_expression "*piVar2 + 0xd4" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2,pIVar8,iVar5,pIVar4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;" (assignment_expression "lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3" identifier = (binary_expression "(ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3" (binary_expression "(ulonglong)*(uint *)(iVar7 + 0x34)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar7 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) * (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "pIVar8 = (Input_objects *)lVar1;" (assignment_expression "pIVar8 = (Input_objects *)lVar1" identifier = (cast_expression "(Input_objects *)lVar1" ( (type_descriptor "Input_objects *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pIVar4 = pIVar8 + (int)pIVar4;" (assignment_expression "pIVar4 = pIVar8 + (int)pIVar4" identifier = (binary_expression "pIVar8 + (int)pIVar4" identifier + (cast_expression "(int)pIVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;" (assignment_expression "iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5" identifier = (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5" (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20)" (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3" (call_expression "(uint)(pIVar4 < pIVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pIVar4 < pIVar8)" ( (binary_expression "pIVar4 < pIVar8" identifier < identifier) ))) + (binary_expression "*(int *)(iVar7 + 0x30) * uVar3" (pointer_expression "*(int *)(iVar7 + 0x30)" * (cast_expression "(int *)(iVar7 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) * identifier)) + (cast_expression "(int)((ulonglong)lVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + identifier)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 4) != puVar6)" ( (binary_expression "*(undefined4 **)(param_1 + 4) != puVar6" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != identifier) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\n/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_headers": ignoring overlapping field "layout_" */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Struct "Output_reduced_debug_abbrev_section": ignoring overlapping field "data_" */\n/* WARNING: Struct "Output_reduced_debug_info_section": ignoring overlapping field "data_" */\n/* DWARF original prototype: void assign_local_dynsym_offsets(Layout * this, Input_objects *\n   input_objects) */\n\nvoid __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *input_objects)\n\n{\n  longlong lVar1;\n  Input_objects *pIVar2;\n  Relobj *pRVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *in_a3;\n  Input_objects *pIVar10;\n  int *piVar11;\n  int iVar12;\n  pointer ppRVar13;\n  Output_section *pOVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  \n  pOVar14 = this->dynsym_section_;\n  if (pOVar14 != (Output_section *)0x0) {\n    if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }\n    pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);\n    pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_);\n    ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n    iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;\n    pIVar2 = input_objects;\n    if (ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }\n  }\n  return;\n}\n\n" comment comment comment comment comment comment comment (function_definition "void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *input_objects)\n\n{\n  longlong lVar1;\n  Input_objects *pIVar2;\n  Relobj *pRVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *in_a3;\n  Input_objects *pIVar10;\n  int *piVar11;\n  int iVar12;\n  pointer ppRVar13;\n  Output_section *pOVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  \n  pOVar14 = this->dynsym_section_;\n  if (pOVar14 != (Output_section *)0x0) {\n    if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }\n    pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);\n    pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_);\n    ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n    iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;\n    pIVar2 = input_objects;\n    if (ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "assign_local_dynsym_offsets(Layout *this,Input_objects *input_objects)" identifier (parameter_list "(Layout *this,Input_objects *input_objects)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Input_objects *input_objects" type_identifier (pointer_declarator "*input_objects" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  Input_objects *pIVar2;\n  Relobj *pRVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  undefined4 *in_a3;\n  Input_objects *pIVar10;\n  int *piVar11;\n  int iVar12;\n  pointer ppRVar13;\n  Output_section *pOVar14;\n  undefined *puVar15;\n  code *pcVar16;\n  \n  pOVar14 = this->dynsym_section_;\n  if (pOVar14 != (Output_section *)0x0) {\n    if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }\n    pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);\n    pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_);\n    ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n    iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;\n    pIVar2 = input_objects;\n    if (ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "Input_objects *pIVar2;" type_identifier (pointer_declarator "*pIVar2" * identifier) ;) (declaration "Relobj *pRVar3;" type_identifier (pointer_declarator "*pRVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "Input_objects *pIVar10;" type_identifier (pointer_declarator "*pIVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "pointer ppRVar13;" type_identifier identifier ;) (declaration "Output_section *pOVar14;" type_identifier (pointer_declarator "*pOVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (expression_statement "pOVar14 = this->dynsym_section_;" (assignment_expression "pOVar14 = this->dynsym_section_" identifier = (field_expression "this->dynsym_section_" identifier -> field_identifier)) ;) (if_statement "if (pOVar14 != (Output_section *)0x0) {\n    if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }\n    pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);\n    pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_);\n    ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n    iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;\n    pIVar2 = input_objects;\n    if (ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }\n  }" if (parenthesized_expression "(pOVar14 != (Output_section *)0x0)" ( (binary_expression "pOVar14 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }\n    pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);\n    pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_);\n    ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;\n    iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;\n    pIVar2 = input_objects;\n    if (ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }\n  }" { (if_statement "if (-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2) {\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }" if (parenthesized_expression "(-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2)" ( (binary_expression "-1 < *(int *)&(pOVar14->super_Output_data).field_0x20 << 2" number_literal < (binary_expression "*(int *)&(pOVar14->super_Output_data).field_0x20 << 2" (pointer_expression "*(int *)&(pOVar14->super_Output_data).field_0x20" * (cast_expression "(int *)&(pOVar14->super_Output_data).field_0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar14->super_Output_data).field_0x20" & (field_expression "(pOVar14->super_Output_data).field_0x20" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) << number_literal)) )) (compound_statement "{\n      puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;\n      puVar15 = PTR_do_gold_unreachable_004c1a30;\n      (*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);\n      piVar11 = *(int **)(puVar6 + 0x198);\n      if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }\n      return;\n    }" { (expression_statement "puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574;" (assignment_expression "puVar6 = PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier = (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal)) ;) (expression_statement "puVar15 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar15 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6,0xe3,PTR_s__s_004c1a50 + 0x47d4)" ( identifier , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x47d4" identifier + number_literal) ))) ;) (expression_statement "piVar11 = *(int **)(puVar6 + 0x198);" (assignment_expression "piVar11 = *(int **)(puVar6 + 0x198)" identifier = (pointer_expression "*(int **)(puVar6 + 0x198)" * (cast_expression "(int **)(puVar6 + 0x198)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + 0x198)" ( (binary_expression "puVar6 + 0x198" identifier + number_literal) ))))) ;) (if_statement "if (piVar11 != (int *)0x0) {\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }\n        iVar12 = *(int *)(puVar6 + 0x194);\n        if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }\n      }" { (if_statement "if ((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)) {\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }" if (parenthesized_expression "((-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1))" ( (binary_expression "(-1 < piVar11[8] << 1) &&\n           ((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)" (parenthesized_expression "(-1 < piVar11[8] << 1)" ( (binary_expression "-1 < piVar11[8] << 1" number_literal < (binary_expression "piVar11[8] << 1" (subscript_expression "piVar11[8]" identifier [ number_literal ]) << number_literal)) )) && (parenthesized_expression "((**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1)" ( (comma_expression "(**(code **)(*piVar11 + 0x38))(piVar11), -1 < piVar11[8] << 1" (call_expression "(**(code **)(*piVar11 + 0x38))(piVar11)" (parenthesized_expression "(**(code **)(*piVar11 + 0x38))" ( (pointer_expression "**(code **)(*piVar11 + 0x38)" * (pointer_expression "*(code **)(*piVar11 + 0x38)" * (cast_expression "(code **)(*piVar11 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 0x38)" ( (binary_expression "*piVar11 + 0x38" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) )) (argument_list "(piVar11)" ( identifier ))) , (binary_expression "-1 < piVar11[8] << 1" number_literal < (binary_expression "piVar11[8] << 1" (subscript_expression "piVar11[8]" identifier [ number_literal ]) << number_literal))) ))) )) (compound_statement "{\n          iVar9 = 0x163;\n          iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);\nLAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;\n          return;\n        }" { (expression_statement "iVar9 = 0x163;" (assignment_expression "iVar9 = 0x163" identifier = number_literal) ;) (expression_statement "iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598);" (assignment_expression "iVar12 = (**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598)" identifier = (call_expression "(**(code **)(puVar15 + 0x30ebe4))\n                             (*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598)" (parenthesized_expression "(**(code **)(puVar15 + 0x30ebe4))" ( (pointer_expression "**(code **)(puVar15 + 0x30ebe4)" * (pointer_expression "*(code **)(puVar15 + 0x30ebe4)" * (cast_expression "(code **)(puVar15 + 0x30ebe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30ebe4)" ( (binary_expression "puVar15 + 0x30ebe4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar15 + 0x30e430) + 0x3574,0x163,\n                              *(int *)(puVar15 + 0x30ec04) + 0x4598)" ( (binary_expression "*(int *)(puVar15 + 0x30e430) + 0x3574" (pointer_expression "*(int *)(puVar15 + 0x30e430)" * (cast_expression "(int *)(puVar15 + 0x30e430)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x30e430)" ( (binary_expression "puVar15 + 0x30e430" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar15 + 0x30ec04) + 0x4598" (pointer_expression "*(int *)(puVar15 + 0x30ec04)" * (cast_expression "(int *)(puVar15 + 0x30ec04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x30ec04)" ( (binary_expression "puVar15 + 0x30ec04" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_001b2f1c:\n          *(int *)(iVar12 + 0x34) = iVar9;" statement_identifier : (expression_statement "*(int *)(iVar12 + 0x34) = iVar9;" (assignment_expression "*(int *)(iVar12 + 0x34) = iVar9" (pointer_expression "*(int *)(iVar12 + 0x34)" * (cast_expression "(int *)(iVar12 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x34)" ( (binary_expression "iVar12 + 0x34" identifier + number_literal) )))) = identifier) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar12 = *(int *)(puVar6 + 0x194);" (assignment_expression "iVar12 = *(int *)(puVar6 + 0x194)" identifier = (pointer_expression "*(int *)(puVar6 + 0x194)" * (cast_expression "(int *)(puVar6 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x194)" ( (binary_expression "puVar6 + 0x194" identifier + number_literal) ))))) ;) (if_statement "if (iVar12 != 0) {\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar9 = piVar11[5];\n          if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }\n          iVar12 = 0x1502;\n          pcVar16 = *(code **)(puVar15 + 0x30ebe4);\n          iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;\n          puVar8 = (undefined4 *)(iVar7 + 0x320c);\n          (*pcVar16)(puVar8,0x1502,iVar9);\n          if (iVar12 < 1) {\n            return;\n          }\n          iVar7 = 0;\n          while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }\n          *in_a3 = puVar8[3];\n          return;\n        }" { (expression_statement "iVar9 = piVar11[5];" (assignment_expression "iVar9 = piVar11[5]" identifier = (subscript_expression "piVar11[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0) {\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }\n          else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }" if (parenthesized_expression "(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0)" ( (binary_expression "*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) == 0" (pointer_expression "*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc)" * (cast_expression "(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar15 + 0x30eb68) + 0xc)" ( (binary_expression "**(int **)(puVar15 + 0x30eb68) + 0xc" (pointer_expression "**(int **)(puVar15 + 0x30eb68)" * (pointer_expression "*(int **)(puVar15 + 0x30eb68)" * (cast_expression "(int **)(puVar15 + 0x30eb68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30eb68)" ( (binary_expression "puVar15 + 0x30eb68" identifier + number_literal) ))))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;\n            (**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);\n          }" { (expression_statement "iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8;" (assignment_expression "iVar7 = *(int *)(puVar15 + 0x30e430) + -0x9b8" identifier = (binary_expression "*(int *)(puVar15 + 0x30e430) + -0x9b8" (pointer_expression "*(int *)(puVar15 + 0x30e430)" * (cast_expression "(int *)(puVar15 + 0x30e430)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x30e430)" ( (binary_expression "puVar15 + 0x30e430" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784);" (call_expression "(**(code **)(puVar15 + 0x30ebe4))(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784)" (parenthesized_expression "(**(code **)(puVar15 + 0x30ebe4))" ( (pointer_expression "**(code **)(puVar15 + 0x30ebe4)" * (pointer_expression "*(code **)(puVar15 + 0x30ebe4)" * (cast_expression "(code **)(puVar15 + 0x30ebe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30ebe4)" ( (binary_expression "puVar15 + 0x30ebe4" identifier + number_literal) ))))) )) (argument_list "(iVar7,0x69,*(int *)(puVar15 + 0x30ec04) + 0x4784)" ( identifier , number_literal , (binary_expression "*(int *)(puVar15 + 0x30ec04) + 0x4784" (pointer_expression "*(int *)(puVar15 + 0x30ec04)" * (cast_expression "(int *)(puVar15 + 0x30ec04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x30ec04)" ( (binary_expression "puVar15 + 0x30ec04" identifier + number_literal) )))) + number_literal) ))) ;) }) (else_clause "else {\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }" else (compound_statement "{\n            iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);\n            if (iVar5 == 0x20) goto LAB_001b2f1c;\n            iVar7 = *(int *)(puVar15 + 0x30ec04);\n            if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }\n          }" { (expression_statement "iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4);" (assignment_expression "iVar5 = **(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4)" identifier = (pointer_expression "**(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4)" * (pointer_expression "*(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4)" * (cast_expression "(int **)(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4)" ( (binary_expression "*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc) + 4" (pointer_expression "*(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc)" * (cast_expression "(int *)(**(int **)(puVar15 + 0x30eb68) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(puVar15 + 0x30eb68) + 0xc)" ( (binary_expression "**(int **)(puVar15 + 0x30eb68) + 0xc" (pointer_expression "**(int **)(puVar15 + 0x30eb68)" * (pointer_expression "*(int **)(puVar15 + 0x30eb68)" * (cast_expression "(int **)(puVar15 + 0x30eb68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30eb68)" ( (binary_expression "puVar15 + 0x30eb68" identifier + number_literal) ))))) + number_literal) )))) + number_literal) )))))) ;) (if_statement "if (iVar5 == 0x20) goto LAB_001b2f1c;" if (parenthesized_expression "(iVar5 == 0x20)" ( (binary_expression "iVar5 == 0x20" identifier == number_literal) )) (goto_statement "goto LAB_001b2f1c;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(puVar15 + 0x30ec04);" (assignment_expression "iVar7 = *(int *)(puVar15 + 0x30ec04)" identifier = (pointer_expression "*(int *)(puVar15 + 0x30ec04)" * (cast_expression "(int *)(puVar15 + 0x30ec04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x30ec04)" ( (binary_expression "puVar15 + 0x30ec04" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0x40) {\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }" if (parenthesized_expression "(iVar5 == 0x40)" ( (binary_expression "iVar5 == 0x40" identifier == number_literal) )) (compound_statement "{\n              *(int *)(iVar12 + 0x38) = piVar11[4];\n              *(int *)(iVar12 + 0x3c) = iVar9;\n              return;\n            }" { (expression_statement "*(int *)(iVar12 + 0x38) = piVar11[4];" (assignment_expression "*(int *)(iVar12 + 0x38) = piVar11[4]" (pointer_expression "*(int *)(iVar12 + 0x38)" * (cast_expression "(int *)(iVar12 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x38)" ( (binary_expression "iVar12 + 0x38" identifier + number_literal) )))) = (subscript_expression "piVar11[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar12 + 0x3c) = iVar9;" (assignment_expression "*(int *)(iVar12 + 0x3c) = iVar9" (pointer_expression "*(int *)(iVar12 + 0x3c)" * (cast_expression "(int *)(iVar12 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x3c)" ( (binary_expression "iVar12 + 0x3c" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) }))) (expression_statement "iVar12 = 0x1502;" (assignment_expression "iVar12 = 0x1502" identifier = number_literal) ;) (expression_statement "pcVar16 = *(code **)(puVar15 + 0x30ebe4);" (assignment_expression "pcVar16 = *(code **)(puVar15 + 0x30ebe4)" identifier = (pointer_expression "*(code **)(puVar15 + 0x30ebe4)" * (cast_expression "(code **)(puVar15 + 0x30ebe4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x30ebe4)" ( (binary_expression "puVar15 + 0x30ebe4" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac;" (assignment_expression "iVar9 = *(int *)(puVar15 + 0x30ec04) + 0x43ac" identifier = (binary_expression "*(int *)(puVar15 + 0x30ec04) + 0x43ac" (pointer_expression "*(int *)(puVar15 + 0x30ec04)" * (cast_expression "(int *)(puVar15 + 0x30ec04)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x30ec04)" ( (binary_expression "puVar15 + 0x30ec04" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)(iVar7 + 0x320c);" (assignment_expression "puVar8 = (undefined4 *)(iVar7 + 0x320c)" identifier = (cast_expression "(undefined4 *)(iVar7 + 0x320c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x320c)" ( (binary_expression "iVar7 + 0x320c" identifier + number_literal) )))) ;) (expression_statement "(*pcVar16)(puVar8,0x1502,iVar9);" (call_expression "(*pcVar16)(puVar8,0x1502,iVar9)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(puVar8,0x1502,iVar9)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (iVar12 < 1) {\n            return;\n          }" if (parenthesized_expression "(iVar12 < 1)" ( (binary_expression "iVar12 < 1" identifier < number_literal) )) (compound_statement "{\n            return;\n          }" { (return_statement "return;" return ;) })) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar7 = iVar7 + 1;\n            if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }\n            if (iVar5 == 0) break;\n            puVar8 = puVar8 + 4;\n            if (iVar12 == iVar7) {\n              return;\n            }\n          }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if ((int)puVar8[1] < 1) {\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }\n            else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }" if (parenthesized_expression "((int)puVar8[1] < 1)" ( (binary_expression "(int)puVar8[1] < 1" (cast_expression "(int)puVar8[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar8[1]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n              iVar5 = (**(code **)(pcVar16 + 0x312b00))();\n            }" { (expression_statement "iVar5 = (**(code **)(pcVar16 + 0x312b00))();" (assignment_expression "iVar5 = (**(code **)(pcVar16 + 0x312b00))()" identifier = (call_expression "(**(code **)(pcVar16 + 0x312b00))()" (parenthesized_expression "(**(code **)(pcVar16 + 0x312b00))" ( (pointer_expression "**(code **)(pcVar16 + 0x312b00)" * (pointer_expression "*(code **)(pcVar16 + 0x312b00)" * (cast_expression "(code **)(pcVar16 + 0x312b00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x312b00)" ( (binary_expression "pcVar16 + 0x312b00" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) }) (else_clause "else {\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }" else (compound_statement "{\n              iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);\n            }" { (expression_statement "iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1]);" (assignment_expression "iVar5 = (**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1])" identifier = (call_expression "(**(code **)(pcVar16 + 0x312b58))(iVar9,*puVar8,puVar8[1])" (parenthesized_expression "(**(code **)(pcVar16 + 0x312b58))" ( (pointer_expression "**(code **)(pcVar16 + 0x312b58)" * (pointer_expression "*(code **)(pcVar16 + 0x312b58)" * (cast_expression "(code **)(pcVar16 + 0x312b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + 0x312b58)" ( (binary_expression "pcVar16 + 0x312b58" identifier + number_literal) ))))) )) (argument_list "(iVar9,*puVar8,puVar8[1])" ( identifier , (pointer_expression "*puVar8" * identifier) , (subscript_expression "puVar8[1]" identifier [ number_literal ]) )))) ;) }))) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = puVar8 + 4;" (assignment_expression "puVar8 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) (if_statement "if (iVar12 == iVar7) {\n              return;\n            }" if (parenthesized_expression "(iVar12 == iVar7)" ( (binary_expression "iVar12 == iVar7" identifier == identifier) )) (compound_statement "{\n              return;\n            }" { (return_statement "return;" return ;) })) })) (expression_statement "*in_a3 = puVar8[3];" (assignment_expression "*in_a3 = puVar8[3]" (pointer_expression "*in_a3" * identifier) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })) (expression_statement "pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4);" (assignment_expression "pIVar2 = *(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4)" identifier = (pointer_expression "*(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4)" * (cast_expression "(Input_objects **)((int)&(pOVar14->super_Output_data).offset_ + 4)" ( (type_descriptor "Input_objects **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&(pOVar14->super_Output_data).offset_ + 4)" ( (binary_expression "(int)&(pOVar14->super_Output_data).offset_ + 4" (cast_expression "(int)&(pOVar14->super_Output_data).offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pOVar14->super_Output_data).offset_" & (field_expression "(pOVar14->super_Output_data).offset_" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_);" (assignment_expression "pIVar10 = (Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_)" identifier = (cast_expression "(Input_objects *)\n              ((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_)" ( (type_descriptor "Input_objects *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_)" ( (binary_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start + (int)pOVar14->entsize_" (field_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                     _M_start" (field_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold::Relobj*,_std" (binary_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base<gold" (cast_expression "(int)&(pIVar2->relobj_list_).\n                     super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar2->relobj_list_).\n                     super__Vector_base" & (field_expression "(pIVar2->relobj_list_).\n                     super__Vector_base" (parenthesized_expression "(pIVar2->relobj_list_)" ( (field_expression "pIVar2->relobj_list_" identifier -> field_identifier) )) . field_identifier))) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (cast_expression "(int)pOVar14->entsize_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar14->entsize_" identifier -> field_identifier))) )))) ;) (expression_statement "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start;" (field_expression "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start" (field_expression "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std" (assignment_expression "ppRVar13 = (input_objects->relobj_list_).\n               super__Vector_base<gold" identifier = (binary_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n               super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (expression_statement "iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_;" (assignment_expression "iVar12 = (uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_" identifier = (binary_expression "(uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_ + *(int *)&pOVar14->entsize_" (binary_expression "(uint)(pIVar10 < pIVar2) +\n             *(int *)&(pOVar14->super_Output_data).offset_" (call_expression "(uint)(pIVar10 < pIVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pIVar10 < pIVar2)" ( (binary_expression "pIVar10 < pIVar2" identifier < identifier) ))) + (pointer_expression "*(int *)&(pOVar14->super_Output_data).offset_" * (cast_expression "(int *)&(pOVar14->super_Output_data).offset_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pOVar14->super_Output_data).offset_" & (field_expression "(pOVar14->super_Output_data).offset_" (parenthesized_expression "(pOVar14->super_Output_data)" ( (field_expression "pOVar14->super_Output_data" identifier -> field_identifier) )) . field_identifier))))) + (pointer_expression "*(int *)&pOVar14->entsize_" * (cast_expression "(int *)&pOVar14->entsize_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar14->entsize_" & (field_expression "pOVar14->entsize_" identifier -> field_identifier)))))) ;) (expression_statement "pIVar2 = input_objects;" (assignment_expression "pIVar2 = input_objects" identifier = identifier) ;) (if_statement "if (ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish) {\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }" if (parenthesized_expression "(ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish)" ( (field_expression "ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold::Relobj*,_std" (binary_expression "ppRVar13 !=\n        (input_objects->relobj_list_).\n        super__Vector_base<gold" identifier != (binary_expression "(input_objects->relobj_list_).\n        super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n        super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) (compound_statement "{\n      do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);\n    }" { (do_statement "do {\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      } while ((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13);" do (compound_statement "{\n        pRVar3 = *ppRVar13;\n        ppRVar13 = ppRVar13 + 1;\n        uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);\n        lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;\n        pIVar2 = (Input_objects *)lVar1;\n        pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);\n        iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;\n      }" { (expression_statement "pRVar3 = *ppRVar13;" (assignment_expression "pRVar3 = *ppRVar13" identifier = (pointer_expression "*ppRVar13" * identifier)) ;) (expression_statement "ppRVar13 = ppRVar13 + 1;" (assignment_expression "ppRVar13 = ppRVar13 + 1" identifier = (binary_expression "ppRVar13 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10);" (assignment_expression "uVar4 = (*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10)" identifier = (call_expression "(*(pRVar3->super_Object)._vptr_Object[0x35])(pRVar3,pIVar2,iVar12,pIVar10)" (parenthesized_expression "(*(pRVar3->super_Object)._vptr_Object[0x35])" ( (pointer_expression "*(pRVar3->super_Object)._vptr_Object[0x35]" * (subscript_expression "(pRVar3->super_Object)._vptr_Object[0x35]" (field_expression "(pRVar3->super_Object)._vptr_Object" (parenthesized_expression "(pRVar3->super_Object)" ( (field_expression "pRVar3->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pRVar3,pIVar2,iVar12,pIVar10)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4;" (assignment_expression "lVar1 = (ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4" identifier = (binary_expression "(ulonglong)(uint)pOVar14->entsize_ * (ulonglong)uVar4" (cast_expression "(ulonglong)(uint)pOVar14->entsize_" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)pOVar14->entsize_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar14->entsize_" identifier -> field_identifier))) * (cast_expression "(ulonglong)uVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "pIVar2 = (Input_objects *)lVar1;" (assignment_expression "pIVar2 = (Input_objects *)lVar1" identifier = (cast_expression "(Input_objects *)lVar1" ( (type_descriptor "Input_objects *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start);" (assignment_expression "pIVar10 = (Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start)" identifier = (cast_expression "(Input_objects *)\n                  ((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start)" ( (type_descriptor "Input_objects *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start)" ( (field_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                        _M_start" (field_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold::Relobj*,_std" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base<gold" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start +\n                  (int)&(pIVar10->relobj_list_).\n                        super__Vector_base" (field_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl.\n                         _M_start" (field_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold::Relobj*,_std" (binary_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base<gold" (cast_expression "(int)&(pIVar2->relobj_list_).\n                         super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar2->relobj_list_).\n                         super__Vector_base" & (field_expression "(pIVar2->relobj_list_).\n                         super__Vector_base" (parenthesized_expression "(pIVar2->relobj_list_)" ( (field_expression "pIVar2->relobj_list_" identifier -> field_identifier) )) . field_identifier))) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) + (cast_expression "(int)&(pIVar10->relobj_list_).\n                        super__Vector_base" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pIVar10->relobj_list_).\n                        super__Vector_base" & (field_expression "(pIVar10->relobj_list_).\n                        super__Vector_base" (parenthesized_expression "(pIVar10->relobj_list_)" ( (field_expression "pIVar10->relobj_list_" identifier -> field_identifier) )) . field_identifier)))) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )))) ;) (expression_statement "iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12;" (assignment_expression "iVar12 = (uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12" identifier = (binary_expression "(uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20) + iVar12" (binary_expression "(uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4 + (int)((ulonglong)lVar1 >> 0x20)" (binary_expression "(uint)(pIVar10 < pIVar2) +\n                 *(int *)&pOVar14->entsize_ * uVar4" (call_expression "(uint)(pIVar10 < pIVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pIVar10 < pIVar2)" ( (binary_expression "pIVar10 < pIVar2" identifier < identifier) ))) + (binary_expression "*(int *)&pOVar14->entsize_ * uVar4" (pointer_expression "*(int *)&pOVar14->entsize_" * (cast_expression "(int *)&pOVar14->entsize_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar14->entsize_" & (field_expression "pOVar14->entsize_" identifier -> field_identifier)))) * identifier)) + (cast_expression "(int)((ulonglong)lVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + identifier)) ;) }) while (parenthesized_expression "((input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13)" ( (binary_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish\n               != ppRVar13" (field_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold::Relobj*,_std" (binary_expression "(input_objects->relobj_list_).\n               super__Vector_base<gold" (field_expression "(input_objects->relobj_list_).\n               super__Vector_base" (parenthesized_expression "(input_objects->relobj_list_)" ( (field_expression "input_objects->relobj_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)\n\n{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}\n\n" (function_definition "void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)\n\n{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)" identifier (parameter_list "(Layout *this,Input_objects *param_1)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Input_objects *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}" { (declaration "longlong lVar1;" type_identifier identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Input_objects *pIVar4;" type_identifier (pointer_declarator "*pIVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "Input_objects *pIVar8;" type_identifier (pointer_declarator "*pIVar8" * identifier) ;) (expression_statement "iVar7 = *(int *)(this + 0x188);" (assignment_expression "iVar7 = *(int *)(this + 0x188)" identifier = (pointer_expression "*(int *)(this + 0x188)" * (cast_expression "(int *)(this + 0x188)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x188)" ( (binary_expression "this + 0x188" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }" { (if_statement "if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }" if (parenthesized_expression "(-1 < *(int *)(iVar7 + 0x20) << 2)" ( (binary_expression "-1 < *(int *)(iVar7 + 0x20) << 2" number_literal < (binary_expression "*(int *)(iVar7 + 0x20) << 2" (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) )))) << number_literal)) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" identifier + number_literal) , number_literal , (binary_expression "PTR_s__s_004c1a50 + 0x47d4" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);" (assignment_expression "pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34)" identifier = (binary_expression "*(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34)" (pointer_expression "*(Input_objects **)(iVar7 + 0x1c)" * (cast_expression "(Input_objects **)(iVar7 + 0x1c)" ( (type_descriptor "Input_objects **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar7 + 0x34)" * (cast_expression "(int *)(iVar7 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))))) ;) (expression_statement "puVar6 = *(undefined4 **)param_1;" (assignment_expression "puVar6 = *(undefined4 **)param_1" identifier = (pointer_expression "*(undefined4 **)param_1" * (cast_expression "(undefined4 **)param_1" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);" (assignment_expression "iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30)" identifier = (binary_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30)" (binary_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18)" (call_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pIVar4 < *(Input_objects **)(iVar7 + 0x1c))" ( (binary_expression "pIVar4 < *(Input_objects **)(iVar7 + 0x1c)" identifier < (pointer_expression "*(Input_objects **)(iVar7 + 0x1c)" * (cast_expression "(Input_objects **)(iVar7 + 0x1c)" ( (type_descriptor "Input_objects **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) ))))) ))) + (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar7 + 0x30)" * (cast_expression "(int *)(iVar7 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))))) ;) (expression_statement "pIVar8 = param_1;" (assignment_expression "pIVar8 = param_1" identifier = identifier) ;) (if_statement "if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }" if (parenthesized_expression "(puVar6 != *(undefined4 **)(param_1 + 4))" ( (binary_expression "puVar6 != *(undefined4 **)(param_1 + 4)" identifier != (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }" { (do_statement "do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);" do (compound_statement "{\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      }" { (expression_statement "piVar2 = (int *)*puVar6;" (assignment_expression "piVar2 = (int *)*puVar6" identifier = (cast_expression "(int *)*puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);" (assignment_expression "uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4)" identifier = (call_expression "(**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4)" (parenthesized_expression "(**(code **)(*piVar2 + 0xd4))" ( (pointer_expression "**(code **)(*piVar2 + 0xd4)" * (pointer_expression "*(code **)(*piVar2 + 0xd4)" * (cast_expression "(code **)(*piVar2 + 0xd4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0xd4)" ( (binary_expression "*piVar2 + 0xd4" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2,pIVar8,iVar5,pIVar4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;" (assignment_expression "lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3" identifier = (binary_expression "(ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3" (binary_expression "(ulonglong)*(uint *)(iVar7 + 0x34)" (parenthesized_expression "(ulonglong)" ( identifier )) * (cast_expression "(uint *)(iVar7 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x34)" ( (binary_expression "iVar7 + 0x34" identifier + number_literal) )))) * (cast_expression "(ulonglong)uVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "pIVar8 = (Input_objects *)lVar1;" (assignment_expression "pIVar8 = (Input_objects *)lVar1" identifier = (cast_expression "(Input_objects *)lVar1" ( (type_descriptor "Input_objects *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pIVar4 = pIVar8 + (int)pIVar4;" (assignment_expression "pIVar4 = pIVar8 + (int)pIVar4" identifier = (binary_expression "pIVar8 + (int)pIVar4" identifier + (cast_expression "(int)pIVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;" (assignment_expression "iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5" identifier = (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5" (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20)" (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3" (call_expression "(uint)(pIVar4 < pIVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pIVar4 < pIVar8)" ( (binary_expression "pIVar4 < pIVar8" identifier < identifier) ))) + (binary_expression "*(int *)(iVar7 + 0x30) * uVar3" (pointer_expression "*(int *)(iVar7 + 0x30)" * (cast_expression "(int *)(iVar7 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) * identifier)) + (cast_expression "(int)((ulonglong)lVar1 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar1 >> 0x20)" ( (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + identifier)) ;) }) while (parenthesized_expression "(*(undefined4 **)(param_1 + 4) != puVar6)" ( (binary_expression "*(undefined4 **)(param_1 + 4) != puVar6" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != identifier) )) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT)) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) })) (return_statement return ;) })))
(function_definition "void __thiscall gold::Layout::assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)\n\n{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}" (primitive_type "void") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Layout::" (identifier "gold") (: ":") (: ":") (identifier "Layout") (: ":") (: ":")) (function_declarator "assign_local_dynsym_offsets(Layout *this,Input_objects *param_1)" (identifier "assign_local_dynsym_offsets") (parameter_list "(Layout *this,Input_objects *param_1)" (( "(") (parameter_declaration "Layout *this" (type_identifier "Layout") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Input_objects *param_1" (type_identifier "Input_objects") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  longlong lVar1;\n  int *piVar2;\n  uint uVar3;\n  Input_objects *pIVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  Input_objects *pIVar8;\n  \n  iVar7 = *(int *)(this + 0x188);\n  if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }\n  return;\n}" ({ "{") (declaration "longlong lVar1;" (type_identifier "longlong") (identifier "lVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "Input_objects *pIVar4;" (type_identifier "Input_objects") (pointer_declarator "*pIVar4" (* "*") (identifier "pIVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "Input_objects *pIVar8;" (type_identifier "Input_objects") (pointer_declarator "*pIVar8" (* "*") (identifier "pIVar8")) (; ";")) (expression_statement "iVar7 = *(int *)(this + 0x188);" (assignment_expression "iVar7 = *(int *)(this + 0x188)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(this + 0x188)" (* "*") (cast_expression "(int *)(this + 0x188)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x188)" (( "(") (binary_expression "this + 0x188" (identifier "this") (+ "+") (number_literal "0x188")) () ")"))))) (; ";")) (if_statement "if (iVar7 != 0) {\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }\n    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);\n    puVar6 = *(undefined4 **)param_1;\n    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);\n    pIVar8 = param_1;\n    if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }\n  }" ({ "{") (if_statement "if (-1 < *(int *)(iVar7 + 0x20) << 2) {\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar7 + 0x20) << 2)" (( "(") (binary_expression "-1 < *(int *)(iVar7 + 0x20) << 2" (number_literal "-1") (< "<") (binary_expression "*(int *)(iVar7 + 0x20) << 2" (pointer_expression "*(int *)(iVar7 + 0x20)" (* "*") (cast_expression "(int *)(iVar7 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) () ")")))) (<< "<<") (number_literal "2"))) () ")")) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);\n      return;\n    }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,\n                 PTR_s__s_004c1a50 + 0x47d4)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "0x3574")) (, ",") (number_literal "0xe3") (, ",") (binary_expression "PTR_s__s_004c1a50 + 0x47d4" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "0x47d4")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);" (assignment_expression "pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34)" (identifier "pIVar4") (= "=") (binary_expression "*(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34)" (pointer_expression "*(Input_objects **)(iVar7 + 0x1c)" (* "*") (cast_expression "(Input_objects **)(iVar7 + 0x1c)" (( "(") (type_descriptor "Input_objects **" (type_identifier "Input_objects") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar7 + 0x34)" (* "*") (cast_expression "(int *)(iVar7 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")")))))) (; ";")) (expression_statement "puVar6 = *(undefined4 **)param_1;" (assignment_expression "puVar6 = *(undefined4 **)param_1" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)param_1" (* "*") (cast_expression "(undefined4 **)param_1" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_1")))) (; ";")) (expression_statement "iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);" (assignment_expression "iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30)" (identifier "iVar5") (= "=") (binary_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30)" (binary_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +\n            *(int *)(iVar7 + 0x18)" (call_expression "(uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pIVar4 < *(Input_objects **)(iVar7 + 0x1c))" (( "(") (binary_expression "pIVar4 < *(Input_objects **)(iVar7 + 0x1c)" (identifier "pIVar4") (< "<") (pointer_expression "*(Input_objects **)(iVar7 + 0x1c)" (* "*") (cast_expression "(Input_objects **)(iVar7 + 0x1c)" (( "(") (type_descriptor "Input_objects **" (type_identifier "Input_objects") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")"))))) () ")"))) (+ "+") (pointer_expression "*(int *)(iVar7 + 0x18)" (* "*") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (pointer_expression "*(int *)(iVar7 + 0x30)" (* "*") (cast_expression "(int *)(iVar7 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))))) (; ";")) (expression_statement "pIVar8 = param_1;" (assignment_expression "pIVar8 = param_1" (identifier "pIVar8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (puVar6 != *(undefined4 **)(param_1 + 4)) {\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }" (if "if") (parenthesized_expression "(puVar6 != *(undefined4 **)(param_1 + 4))" (( "(") (binary_expression "puVar6 != *(undefined4 **)(param_1 + 4)" (identifier "puVar6") (!= "!=") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n      do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);\n    }" ({ "{") (do_statement "do {\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      } while (*(undefined4 **)(param_1 + 4) != puVar6);" (do "do") (compound_statement "{\n        piVar2 = (int *)*puVar6;\n        puVar6 = puVar6 + 1;\n        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);\n        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;\n        pIVar8 = (Input_objects *)lVar1;\n        pIVar4 = pIVar8 + (int)pIVar4;\n        iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;\n      }" ({ "{") (expression_statement "piVar2 = (int *)*puVar6;" (assignment_expression "piVar2 = (int *)*puVar6" (identifier "piVar2") (= "=") (cast_expression "(int *)*puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);" (assignment_expression "uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4)" (parenthesized_expression "(**(code **)(*piVar2 + 0xd4))" (( "(") (pointer_expression "**(code **)(*piVar2 + 0xd4)" (* "*") (pointer_expression "*(code **)(*piVar2 + 0xd4)" (* "*") (cast_expression "(code **)(*piVar2 + 0xd4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0xd4)" (( "(") (binary_expression "*piVar2 + 0xd4" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0xd4")) () ")"))))) () ")")) (argument_list "(piVar2,pIVar8,iVar5,pIVar4)" (( "(") (identifier "piVar2") (, ",") (identifier "pIVar8") (, ",") (identifier "iVar5") (, ",") (identifier "pIVar4") () ")")))) (; ";")) (expression_statement "lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;" (assignment_expression "lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3" (identifier "lVar1") (= "=") (binary_expression "(ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3" (binary_expression "(ulonglong)*(uint *)(iVar7 + 0x34)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (* "*") (cast_expression "(uint *)(iVar7 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x34)" (( "(") (binary_expression "iVar7 + 0x34" (identifier "iVar7") (+ "+") (number_literal "0x34")) () ")")))) (* "*") (cast_expression "(ulonglong)uVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar3")))) (; ";")) (expression_statement "pIVar8 = (Input_objects *)lVar1;" (assignment_expression "pIVar8 = (Input_objects *)lVar1" (identifier "pIVar8") (= "=") (cast_expression "(Input_objects *)lVar1" (( "(") (type_descriptor "Input_objects *" (type_identifier "Input_objects") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "lVar1"))) (; ";")) (expression_statement "pIVar4 = pIVar8 + (int)pIVar4;" (assignment_expression "pIVar4 = pIVar8 + (int)pIVar4" (identifier "pIVar4") (= "=") (binary_expression "pIVar8 + (int)pIVar4" (identifier "pIVar8") (+ "+") (cast_expression "(int)pIVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pIVar4")))) (; ";")) (expression_statement "iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;" (assignment_expression "iVar5 = (uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5" (identifier "iVar5") (= "=") (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5" (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20)" (binary_expression "(uint)(pIVar4 < pIVar8) +\n                *(int *)(iVar7 + 0x30) * uVar3" (call_expression "(uint)(pIVar4 < pIVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pIVar4 < pIVar8)" (( "(") (binary_expression "pIVar4 < pIVar8" (identifier "pIVar4") (< "<") (identifier "pIVar8")) () ")"))) (+ "+") (binary_expression "*(int *)(iVar7 + 0x30) * uVar3" (pointer_expression "*(int *)(iVar7 + 0x30)" (* "*") (cast_expression "(int *)(iVar7 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (* "*") (identifier "uVar3"))) (+ "+") (cast_expression "(int)((ulonglong)lVar1 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar1 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar1 >> 0x20" (cast_expression "(ulonglong)lVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar1")) (>> ">>") (number_literal "0x20")) () ")")))) (+ "+") (identifier "iVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined4 **)(param_1 + 4) != puVar6)" (( "(") (binary_expression "*(undefined4 **)(param_1 + 4) != puVar6" (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "puVar6")) () ")")) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) right: (identifier))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) (return_statement))))

/* gold::Layout::MASKED(gold::Input_objects const*) */

void __thiscall gold::Layout::MASKED(Layout *this,Input_objects *param_1)

{
  longlong lVar1;
  int *piVar2;
  uint uVar3;
  Input_objects *pIVar4;
  int iVar5;
  undefined4 *puVar6;
  int iVar7;
  Input_objects *pIVar8;
  
  iVar7 = *(int *)(this + 0x188);
  if (iVar7 != 0) {
    if (-1 < *(int *)(iVar7 + 0x20) << 2) {
      (*(code *)PTR_do_gold_unreachable_004c1a30)
                (PTR_s_ral_options14Struct_no_crefE_004c127c + 0x3574,0xe3,
                 PTR_s__s_004c1a50 + 0x47d4);
      return;
    }
    pIVar4 = *(Input_objects **)(iVar7 + 0x1c) + *(int *)(iVar7 + 0x34);
    puVar6 = *(undefined4 **)param_1;
    iVar5 = (uint)(pIVar4 < *(Input_objects **)(iVar7 + 0x1c)) +
            *(int *)(iVar7 + 0x18) + *(int *)(iVar7 + 0x30);
    pIVar8 = param_1;
    if (puVar6 != *(undefined4 **)(param_1 + 4)) {
      do {
        piVar2 = (int *)*puVar6;
        puVar6 = puVar6 + 1;
        uVar3 = (**(code **)(*piVar2 + 0xd4))(piVar2,pIVar8,iVar5,pIVar4);
        lVar1 = (ulonglong)*(uint *)(iVar7 + 0x34) * (ulonglong)uVar3;
        pIVar8 = (Input_objects *)lVar1;
        pIVar4 = pIVar8 + (int)pIVar4;
        iVar5 = (uint)(pIVar4 < pIVar8) +
                *(int *)(iVar7 + 0x30) * uVar3 + (int)((ulonglong)lVar1 >> 0x20) + iVar5;
      } while (*(undefined4 **)(param_1 + 4) != puVar6);
    }
  }
  return;
}

