
/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* 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 add_local_pair_with_rel(Output_data_got<64,_false> * this, Relobj
   * object, uint symndx, uint shndx, uint got_type, Output_data_reloc_generic * rel_dyn, uint
   r_type) */

void __thiscall
gold::Output_data_got<64,_false>::add_local_pair_with_rel
          (Output_data_got<64,_false> *this,Relobj *object,uint symndx,uint shndx,uint got_type,
          Output_data_reloc_generic *rel_dyn,uint r_type)

{
  Got_entry got_entry_1;
  Got_entry got_entry_2;
  Got_entry got_entry_1_00;
  Got_entry got_entry_2_00;
  Got_entry got_entry_1_01;
  Got_entry got_entry_2_01;
  Got_entry got_entry_1_02;
  Got_entry got_entry_2_02;
  undefined1 auVar1 [16];
  undefined1 auVar2 [16];
  undefined1 auVar3 [16];
  undefined1 auVar4 [16];
  undefined1 auVar5 [16];
  int iVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  pointer ppOVar10;
  Output_data_got<64,_false> *pOVar11;
  Output_section *pOVar12;
  int *piVar13;
  int iVar14;
  _func_int_varargs *p_Var15;
  code *pcVar16;
  code *pcVar17;
  undefined4 in_stack_fffffe0c;
  undefined4 uStack_1e4;
  undefined4 uStack_1e0;
  undefined4 uStack_1dc;
  undefined4 uStack_1cc;
  undefined4 uStack_1c8;
  undefined4 uStack_1c4;
  undefined4 uVar18;
  undefined4 in_stack_fffffe84;
  undefined4 uStack_174;
  undefined4 uStack_16c;
  undefined4 uStack_154;
  Relobj *pRVar19;
  undefined4 uVar20;
  undefined4 in_stack_ffffff14;
  undefined4 uStack_e4;
  undefined4 uStack_dc;
  undefined4 uStack_c4;
  undefined4 uVar21;
  int *piVar22;
  undefined4 in_stack_ffffff88;
  Relobj *in_stack_ffffff90;
  undefined4 in_stack_ffffff94;
  int iVar23;
  undefined4 in_stack_ffffffac;
  undefined4 local_4c;
  undefined4 local_44;
  undefined4 local_2c;
  
  piVar22 = (int *)0x0;
  uVar21 = 0;
  iVar23 = 0x43a1d0;
  uVar9 = shndx;
  iVar6 = (*(object->super_Object)._vptr_Object[0x2b])(object,symndx,got_type);
  if (iVar6 != 0) {
    return;
  }
  if ((symndx + 0x80000003 < 3) || ((int)symndx < 0)) {
    (**(code **)(iVar23 + -0x7e0c))
              (*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8);
    local_4c = in_stack_ffffff94;
  }
  else {
    in_stack_ffffff88 = 0;
    auVar1._8_4_ = 0xfffffffa;
    auVar1._12_4_ = local_2c;
    auVar1._0_8_ = 0;
    got_entry_1_02._0_16_ = auVar1 << 0x40;
    got_entry_1_02.addend_._0_4_ = object;
    got_entry_1_02.addend_._4_4_ = local_4c;
    auVar2._8_4_ = symndx << 1;
    auVar2._12_4_ = local_44;
    auVar2._0_8_ = 0;
    got_entry_2_02._0_16_ = auVar2 << 0x40;
    got_entry_2_02.addend_._0_4_ = iVar23;
    got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;
    in_stack_ffffff90 = object;
    uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02);
    piVar22 = (int *)0x0;
    uVar21 = 0;
    uVar9 = uVar7;
    (*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type);
    p_Var15 = (object->super_Object)._vptr_Object[0x18];
    if (p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)) {
      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);
LAB_001aba54:
      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.
        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);
      return;
    }
    ppOVar10 = (object->output_sections_).
               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
               _M_impl._M_start;
    if (shndx < (uint)((int)(object->output_sections_).
                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {
      pOVar12 = ppOVar10[shndx];
      goto LAB_001aba54;
    }
  }
  piVar13 = (int *)&DAT_000005c8;
  pcVar16 = *(code **)(iVar23 + -0x7e0c);
  iVar14 = *(int *)(iVar23 + -0x7e1c) + 0x6e8c;
  pOVar11 = (Output_data_got<64,_false> *)(*(int *)(iVar23 + -0x7fc4) + 0x44a8);
  (*pcVar16)();
  pcVar16 = pcVar16 + 0x28e6dc;
  pRVar19 = in_stack_ffffff90;
  uVar20 = local_4c;
  iVar6 = (**(code **)(*piVar13 + 0xac))(piVar13,iVar14,uVar21);
  if (iVar6 != 0) {
    return;
  }
  uVar7 = 0;
  if ((2 < iVar14 + 0x80000003U) && (-1 < iVar14)) {
    auVar3._8_4_ = 0xfffffffa;
    auVar3._12_4_ = uStack_c4;
    auVar3._0_8_ = 0;
    got_entry_1_01._0_16_ = auVar3 << 0x40;
    got_entry_1_01.addend_._0_4_ = piVar13;
    got_entry_1_01.addend_._4_4_ = uStack_e4;
    got_entry_2_01.u_.object = (Relobj *)(iVar14 << 1);
    got_entry_2_01.u_.constant._4_4_ = uStack_dc;
    got_entry_2_01._8_4_ = in_stack_ffffff90;
    got_entry_2_01._12_4_ = local_4c;
    got_entry_2_01.addend_._0_4_ = pcVar16;
    got_entry_2_01.addend_._4_4_ = in_stack_ffffff14;
    uVar8 = add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01);
    uVar7 = uVar8;
    pRVar19 = in_stack_ffffff90;
    uVar20 = local_4c;
    (**(code **)(*piVar13 + 0xb4))(piVar13,iVar14,uVar21);
    if (*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260)) {
      if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;
      uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);
    }
    else {
      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);
    }
                    /* WARNING: Could not recover jumptable at 0x001abcd8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*piVar22 + 0x74))
              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c);
    return;
  }
  (**(code **)(pcVar16 + -0x7e0c))
            (*(int *)(pcVar16 + -0x7e1c) + -0x4fe0,0xa5d,*(int *)(pcVar16 + -0x7e1c) + 0x5edc);
LAB_001abd40:
  piVar22 = (int *)&DAT_000005c8;
  pcVar17 = *(code **)(pcVar16 + -0x7e0c);
  iVar23 = *(int *)(pcVar16 + -0x7e1c) + 0x6e8c;
  pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar16 + -0x7fc4) + 0x44a8);
  (*pcVar17)();
  pcVar17 = pcVar17 + 0x28e474;
  uVar18 = 0;
  uVar21 = 0;
  iVar6 = (**(code **)(*piVar22 + 0xac))(piVar22,iVar23,uVar7);
  if (iVar6 == 0) {
    if ((iVar23 + 0x80000003U < 3) || (iVar23 < 0)) {
      pcVar16 = *(code **)(pcVar17 + -0x7e0c);
      pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);
      (*pcVar16)(pOVar11,0xa50);
      got_entry_1.u_.object = (Relobj *)0xfffffffc;
      got_entry_1.u_.constant._4_4_ = uStack_1cc;
      got_entry_1._8_4_ = uStack_1c8;
      got_entry_1._12_4_ = uStack_1c4;
      got_entry_1.addend_._0_4_ = uVar21;
      got_entry_1.addend_._4_4_ = uVar18;
      got_entry_2.u_.object = (Relobj *)0xfffffffc;
      got_entry_2.u_.constant._4_4_ = uStack_1e4;
      got_entry_2._8_4_ = uStack_1e0;
      got_entry_2._12_4_ = uStack_1dc;
      got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;
      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;
      add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);
      return;
    }
    auVar4._8_4_ = 0xfffffffa;
    auVar4._12_4_ = uStack_154;
    auVar4._0_8_ = 0;
    got_entry_1_00._0_16_ = auVar4 << 0x40;
    got_entry_1_00.addend_._0_4_ = piVar22;
    got_entry_1_00.addend_._4_4_ = uStack_174;
    auVar5._0_8_ = 0;
    auVar5._8_8_ = CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000;
    got_entry_2_00._0_16_ = auVar5 << 0x40;
    got_entry_2_00.addend_._0_4_ = pcVar17;
    got_entry_2_00.addend_._4_4_ = in_stack_fffffe84;
    uVar9 = add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00);
    uVar21 = 0;
    (**(code **)(*piVar22 + 0xb4))(piVar22,iVar23,uVar7,uVar9,0,0);
    (*(pRVar19->super_Object)._vptr_Object[0x1b])
              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0);
  }
  return;
}



void FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,
                 int *param_6,undefined4 param_7)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 local_4c;
  undefined4 local_44;
  undefined4 local_2c;
  
  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);
  if (iVar1 == 0) {
    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);
      return;
    }
    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair
                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,
                       local_44,0,0);
    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);
    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {
      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);
        return;
      }
      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);
    }
    else {
      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);
    }
    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);
  }
  return;
}


lui gp,0x29
addiu gp,gp,-0x1704
addu gp,gp,t9
addiu sp,sp,-0x90
sw s5,0x88(sp)
or s5,zero,zero
sw s4,0x84(sp)
or s4,zero,zero
sw s5,0x14(sp)
sw s4,0x10(sp)
sw s1,0x78(sp)
or s1,a2,zero
lw v0,0x0(a1)
lw a2,0xa0(sp)
sw s0,0x74(sp)
or s0,a1,zero
sw gp,0x38(sp)
or a1,s1,zero
sw s3,0x80(sp)
or s3,a0,zero
sw s2,0x7c(sp)
or a0,s0,zero
sw ra,0x8c(sp)
lw t9,0xac(v0)
jalr t9
_or s2,a3,zero
bne v0,zero,0x001aba88
_lw gp,0x38(sp)
lw v1,0x48(sp)
lui v0,0x8000
li a1,-0x6
sw s5,0x6c(sp)
addiu v0,v0,0x3
sw s4,0x68(sp)
ins v1,s1,0x1,0x1f
sw a1,0x60(sp)
addu v0,s1,v0
sw s5,0x5c(sp)
ins v1,zero,0x0,0x1
sw s4,0x58(sp)
sltiu v0,v0,0x3
sw s5,0x54(sp)
sw v1,0x48(sp)
bne v0,zero,0x001ababc
_sw s4,0x50(sp)
bltz s1,0x001ababc
_lw v0,0x44(sp)
or a0,s3,zero
lw t9,-0x5724(gp)
lw a2,0x58(sp)
sw v0,0x24(sp)
lw v0,0x4c(sp)
lw a3,0x5c(sp)
sw v1,0x28(sp)
sw v0,0x2c(sp)
lw v0,0x50(sp)
sw a1,0x10(sp)
sw s0,0x20(sp)
sw v0,0x30(sp)
lw v0,0x54(sp)
sw s0,0x40(sp)
sw v0,0x34(sp)
lw v0,0x64(sp)
sw v0,0x14(sp)
lw v0,0x68(sp)
sw v0,0x18(sp)
lw v0,0x6c(sp)
bal 0x001ab334
_sw v0,0x1c(sp)
or a1,zero,zero
or a0,zero,zero
lw a2,0xa0(sp)
sw a1,0x14(sp)
or a3,v0,zero
sw a0,0x10(sp)
or a1,s1,zero
lw v1,0x0(s0)
or a0,s0,zero
lw t9,0xb4(v1)
jalr t9
_or s4,v0,zero
lw gp,0x38(sp)
lw v1,0x0(s0)
lw v0,-0x6260(gp)
lw t9,0x60(v1)
bne t9,v0,0x001abaac
_or a1,s2,zero
lw v1,0x38(s0)
lw v0,0x3c(s0)
subu v0,v0,v1
sra v0,v0,0x2
sltu v0,s2,v0
beq v0,zero,0x001abad8
_sll s2,s2,0x2
addu v1,v1,s2
lw a1,0x0(v1)
or v0,zero,zero
lw a2,0xa8(sp)
or v1,zero,zero
sw v0,0x18(sp)
or a3,s3,zero
sw v1,0x1c(sp)
lw v0,0xa4(sp)
lw v1,0x0(v0)
sw s4,0x14(sp)
sw zero,0x10(sp)
lw t9,0x74(v1)
jalr t9
_or a0,v0,zero
lw ra,0x8c(sp)
lw s5,0x88(sp)
lw s4,0x84(sp)
lw s3,0x80(sp)
lw s2,0x7c(sp)
lw s1,0x78(sp)
lw s0,0x74(sp)
jr ra
_addiu sp,sp,0x90
jalr t9
_or a0,s0,zero
b 0x001aba54
_or a1,v0,zero
lw a2,-0x7e1c(gp)
li a1,0xa50
lw a0,-0x7e1c(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x5ee8
jalr t9
_addiu a0,a0,-0x4fe0
lw a2,-0x7e1c(gp)
li a1,0x5c8
lw a0,-0x7fc4(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x6e8c
jalr t9
_addiu a0,a0,0x44a8
(translation_unit "void FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)" identifier (parameter_list "(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (expression_statement "iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);" (assignment_expression "iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0)" identifier = (call_expression "(**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0)" (parenthesized_expression "(**(code **)(*param_2 + 0xac))" ( (pointer_expression "**(code **)(*param_2 + 0xac)" * (pointer_expression "*(code **)(*param_2 + 0xac)" * (cast_expression "(code **)(*param_2 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xac)" ( (binary_expression "*param_2 + 0xac" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_5,param_4,0,0)" ( identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }" { (if_statement "if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }" if (parenthesized_expression "((param_3 + 0x80000003U < 3) || (param_3 < 0))" ( (binary_expression "(param_3 + 0x80000003U < 3) || (param_3 < 0)" (parenthesized_expression "(param_3 + 0x80000003U < 3)" ( (binary_expression "param_3 + 0x80000003U < 3" (binary_expression "param_3 + 0x80000003U" identifier + number_literal) < number_literal) )) || (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) ))) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5ee8" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (ERROR "uVar2 = gold::" (assignment_expression "uVar2 = gold" identifier = identifier) : :) (expression_statement "Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);" (comma_expression "Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" false > (ERROR "::" : :) (call_expression "add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" identifier (argument_list "(param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier , number_literal , number_literal , identifier , identifier , (binary_expression "param_3 << 1" identifier << number_literal) , identifier , number_literal , number_literal ))))) ;) (expression_statement "(**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);" (call_expression "(**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0)" (parenthesized_expression "(**(code **)(*param_2 + 0xb4))" ( (pointer_expression "**(code **)(*param_2 + 0xb4)" * (pointer_expression "*(code **)(*param_2 + 0xb4)" * (cast_expression "(code **)(*param_2 + 0xb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xb4)" ( (binary_expression "*param_2 + 0xb4" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_5,uVar2,0,0)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" if (parenthesized_expression "(*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70)" ( (binary_expression "*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70" (pointer_expression "*(code **)(*param_2 + 0x60)" * (cast_expression "(code **)(*param_2 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x60)" ( (binary_expression "*param_2 + 0x60" (pointer_expression "*param_2" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_do_output_section_00433f70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }" { (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }" if (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4)" ( (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" ( (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) - (subscript_expression "param_2[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c)" ( (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6e8c" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4)" identifier = (pointer_expression "*(undefined4 *)(param_2[0xe] + param_4 * 4)" * (cast_expression "(undefined4 *)(param_2[0xe] + param_4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xe] + param_4 * 4)" ( (binary_expression "param_2[0xe] + param_4 * 4" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) + (binary_expression "param_4 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" else (compound_statement "{\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" { (expression_statement "uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);" (assignment_expression "uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4)" identifier = (call_expression "(**(code **)(*param_2 + 0x60))(param_2,param_4)" (parenthesized_expression "(**(code **)(*param_2 + 0x60))" ( (pointer_expression "**(code **)(*param_2 + 0x60)" * (pointer_expression "*(code **)(*param_2 + 0x60)" * (cast_expression "(code **)(*param_2 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x60)" ( (binary_expression "*param_2 + 0x60" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_4)" ( identifier , identifier )))) ;) }))) (expression_statement "(**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);" (call_expression "(**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0)" (parenthesized_expression "(**(code **)(*param_6 + 0x74))" ( (pointer_expression "**(code **)(*param_6 + 0x74)" * (pointer_expression "*(code **)(*param_6 + 0x74)" * (cast_expression "(code **)(*param_6 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_6 + 0x74)" ( (binary_expression "*param_6 + 0x74" (pointer_expression "*param_6" * identifier) + number_literal) ))))) )) (argument_list "(param_6,uVar3,param_7,param_1,0,uVar2,0,0)" ( identifier , identifier , identifier , identifier , number_literal , identifier , number_literal , number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */\n/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */\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 add_local_pair_with_rel(Output_data_got<64,_false> * this, Relobj\n   * object, uint symndx, uint shndx, uint got_type, Output_data_reloc_generic * rel_dyn, uint\n   r_type) */\n\nvoid __thiscall\ngold::Output_data_got<64,_false>::add_local_pair_with_rel\n          (Output_data_got<64,_false> *this,Relobj *object,uint symndx,uint shndx,uint got_type,\n          Output_data_reloc_generic *rel_dyn,uint r_type)\n\n{\n  Got_entry got_entry_1;\n  Got_entry got_entry_2;\n  Got_entry got_entry_1_00;\n  Got_entry got_entry_2_00;\n  Got_entry got_entry_1_01;\n  Got_entry got_entry_2_01;\n  Got_entry got_entry_1_02;\n  Got_entry got_entry_2_02;\n  undefined1 auVar1 [16];\n  undefined1 auVar2 [16];\n  undefined1 auVar3 [16];\n  undefined1 auVar4 [16];\n  undefined1 auVar5 [16];\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  pointer ppOVar10;\n  Output_data_got<64,_false> *pOVar11;\n  Output_section *pOVar12;\n  int *piVar13;\n  int iVar14;\n  _func_int_varargs *p_Var15;\n  code *pcVar16;\n  code *pcVar17;\n  undefined4 in_stack_fffffe0c;\n  undefined4 uStack_1e4;\n  undefined4 uStack_1e0;\n  undefined4 uStack_1dc;\n  undefined4 uStack_1cc;\n  undefined4 uStack_1c8;\n  undefined4 uStack_1c4;\n  undefined4 uVar18;\n  undefined4 in_stack_fffffe84;\n  undefined4 uStack_174;\n  undefined4 uStack_16c;\n  undefined4 uStack_154;\n  Relobj *pRVar19;\n  undefined4 uVar20;\n  undefined4 in_stack_ffffff14;\n  undefined4 uStack_e4;\n  undefined4 uStack_dc;\n  undefined4 uStack_c4;\n  undefined4 uVar21;\n  int *piVar22;\n  undefined4 in_stack_ffffff88;\n  Relobj *in_stack_ffffff90;\n  undefined4 in_stack_ffffff94;\n  int iVar23;\n  undefined4 in_stack_ffffffac;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  piVar22 = (int *)0x0;\n  uVar21 = 0;\n  iVar23 = 0x43a1d0;\n  uVar9 = shndx;\n  iVar6 = (*(object->super_Object)._vptr_Object[0x2b])(object,symndx,got_type);\n  if (iVar6 != 0) {\n    return;\n  }\n  if ((symndx + 0x80000003 < 3) || ((int)symndx < 0)) {\n    (**(code **)(iVar23 + -0x7e0c))\n              (*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8);\n    local_4c = in_stack_ffffff94;\n  }\n  else {\n    in_stack_ffffff88 = 0;\n    auVar1._8_4_ = 0xfffffffa;\n    auVar1._12_4_ = local_2c;\n    auVar1._0_8_ = 0;\n    got_entry_1_02._0_16_ = auVar1 << 0x40;\n    got_entry_1_02.addend_._0_4_ = object;\n    got_entry_1_02.addend_._4_4_ = local_4c;\n    auVar2._8_4_ = symndx << 1;\n    auVar2._12_4_ = local_44;\n    auVar2._0_8_ = 0;\n    got_entry_2_02._0_16_ = auVar2 << 0x40;\n    got_entry_2_02.addend_._0_4_ = iVar23;\n    got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;\n    in_stack_ffffff90 = object;\n    uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02);\n    piVar22 = (int *)0x0;\n    uVar21 = 0;\n    uVar9 = uVar7;\n    (*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type);\n    p_Var15 = (object->super_Object)._vptr_Object[0x18];\n    if (p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)) {\n      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);\nLAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);\n      return;\n    }\n    ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    if (shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {\n      pOVar12 = ppOVar10[shndx];\n      goto LAB_001aba54;\n    }\n  }\n  piVar13 = (int *)&DAT_000005c8;\n  pcVar16 = *(code **)(iVar23 + -0x7e0c);\n  iVar14 = *(int *)(iVar23 + -0x7e1c) + 0x6e8c;\n  pOVar11 = (Output_data_got<64,_false> *)(*(int *)(iVar23 + -0x7fc4) + 0x44a8);\n  (*pcVar16)();\n  pcVar16 = pcVar16 + 0x28e6dc;\n  pRVar19 = in_stack_ffffff90;\n  uVar20 = local_4c;\n  iVar6 = (**(code **)(*piVar13 + 0xac))(piVar13,iVar14,uVar21);\n  if (iVar6 != 0) {\n    return;\n  }\n  uVar7 = 0;\n  if ((2 < iVar14 + 0x80000003U) && (-1 < iVar14)) {\n    auVar3._8_4_ = 0xfffffffa;\n    auVar3._12_4_ = uStack_c4;\n    auVar3._0_8_ = 0;\n    got_entry_1_01._0_16_ = auVar3 << 0x40;\n    got_entry_1_01.addend_._0_4_ = piVar13;\n    got_entry_1_01.addend_._4_4_ = uStack_e4;\n    got_entry_2_01.u_.object = (Relobj *)(iVar14 << 1);\n    got_entry_2_01.u_.constant._4_4_ = uStack_dc;\n    got_entry_2_01._8_4_ = in_stack_ffffff90;\n    got_entry_2_01._12_4_ = local_4c;\n    got_entry_2_01.addend_._0_4_ = pcVar16;\n    got_entry_2_01.addend_._4_4_ = in_stack_ffffff14;\n    uVar8 = add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01);\n    uVar7 = uVar8;\n    pRVar19 = in_stack_ffffff90;\n    uVar20 = local_4c;\n    (**(code **)(*piVar13 + 0xb4))(piVar13,iVar14,uVar21);\n    if (*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260)) {\n      if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;\n      uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);\n    }\n    else {\n      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);\n    }\n                    /* WARNING: Could not recover jumptable at 0x001abcd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*piVar22 + 0x74))\n              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c);\n    return;\n  }\n  (**(code **)(pcVar16 + -0x7e0c))\n            (*(int *)(pcVar16 + -0x7e1c) + -0x4fe0,0xa5d,*(int *)(pcVar16 + -0x7e1c) + 0x5edc);\nLAB_001abd40:\n  piVar22 = (int *)&DAT_000005c8;\n  pcVar17 = *(code **)(pcVar16 + -0x7e0c);\n  iVar23 = *(int *)(pcVar16 + -0x7e1c) + 0x6e8c;\n  pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar16 + -0x7fc4) + 0x44a8);\n  (*pcVar17)();\n  pcVar17 = pcVar17 + 0x28e474;\n  uVar18 = 0;\n  uVar21 = 0;\n  iVar6 = (**(code **)(*piVar22 + 0xac))(piVar22,iVar23,uVar7);\n  if (iVar6 == 0) {\n    if ((iVar23 + 0x80000003U < 3) || (iVar23 < 0)) {\n      pcVar16 = *(code **)(pcVar17 + -0x7e0c);\n      pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);\n      (*pcVar16)(pOVar11,0xa50);\n      got_entry_1.u_.object = (Relobj *)0xfffffffc;\n      got_entry_1.u_.constant._4_4_ = uStack_1cc;\n      got_entry_1._8_4_ = uStack_1c8;\n      got_entry_1._12_4_ = uStack_1c4;\n      got_entry_1.addend_._0_4_ = uVar21;\n      got_entry_1.addend_._4_4_ = uVar18;\n      got_entry_2.u_.object = (Relobj *)0xfffffffc;\n      got_entry_2.u_.constant._4_4_ = uStack_1e4;\n      got_entry_2._8_4_ = uStack_1e0;\n      got_entry_2._12_4_ = uStack_1dc;\n      got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;\n      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;\n      add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);\n      return;\n    }\n    auVar4._8_4_ = 0xfffffffa;\n    auVar4._12_4_ = uStack_154;\n    auVar4._0_8_ = 0;\n    got_entry_1_00._0_16_ = auVar4 << 0x40;\n    got_entry_1_00.addend_._0_4_ = piVar22;\n    got_entry_1_00.addend_._4_4_ = uStack_174;\n    auVar5._0_8_ = 0;\n    auVar5._8_8_ = CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000;\n    got_entry_2_00._0_16_ = auVar5 << 0x40;\n    got_entry_2_00.addend_._0_4_ = pcVar17;\n    got_entry_2_00.addend_._4_4_ = in_stack_fffffe84;\n    uVar9 = add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00);\n    uVar21 = 0;\n    (**(code **)(*piVar22 + 0xb4))(piVar22,iVar23,uVar7,uVar9,0,0);\n    (*(pRVar19->super_Object)._vptr_Object[0x1b])\n              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0);\n  }\n  return;\n}\n\n" comment comment comment comment comment comment comment (declaration "void __thiscall\ngold::Output_data_got<64,_false>::add_local_pair_with_rel\n          (Output_data_got<64,_false> *this,Relobj *object,uint symndx,uint shndx,uint got_type,\n          Output_data_reloc_generic *rel_dyn,uint r_type)\n\n{\n  Got_entry got_entry_1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_false>::add_local_pair_with_rel\n          (Output_data_got<64,_false> *this,Relobj *object,uint symndx,uint shndx,uint got_type,\n          Output_data_reloc_generic *rel_dyn,uint r_type)\n\n{\n  Got_entry" identifier > : : (function_declarator "add_local_pair_with_rel\n          (Output_data_got<64,_false> *this,Relobj *object,uint symndx,uint shndx,uint got_type,\n          Output_data_reloc_generic *rel_dyn,uint r_type)" identifier (parameter_list "(Output_data_got<64,_false> *this,Relobj *object,uint symndx,uint shndx,uint got_type,\n          Output_data_reloc_generic *rel_dyn,uint r_type)" ( (parameter_declaration "Output_data_got" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_false> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint symndx" type_identifier identifier) , (parameter_declaration "uint shndx" type_identifier identifier) , (parameter_declaration "uint got_type" type_identifier identifier) , (parameter_declaration "Output_data_reloc_generic *rel_dyn" type_identifier (pointer_declarator "*rel_dyn" * identifier)) , (parameter_declaration "uint r_type" type_identifier identifier) ))) { identifier) identifier ;) (declaration "Got_entry got_entry_2;" type_identifier identifier ;) (declaration "Got_entry got_entry_1_00;" type_identifier identifier ;) (declaration "Got_entry got_entry_2_00;" type_identifier identifier ;) (declaration "Got_entry got_entry_1_01;" type_identifier identifier ;) (declaration "Got_entry got_entry_2_01;" type_identifier identifier ;) (declaration "Got_entry got_entry_1_02;" type_identifier identifier ;) (declaration "Got_entry got_entry_2_02;" type_identifier identifier ;) (declaration "undefined1 auVar1 [16];" type_identifier (array_declarator "auVar1 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar3 [16];" type_identifier (array_declarator "auVar3 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar4 [16];" type_identifier (array_declarator "auVar4 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar5 [16];" type_identifier (array_declarator "auVar5 [16]" identifier [ number_literal ]) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "pointer ppOVar10;" type_identifier identifier ;) (expression_statement "Output_data_got<64,_false> *pOVar11;" (update_expression "Output_data_got<64,_false> *pOVar11" (binary_expression "Output_data_got<64,_false> *pOVar11" (binary_expression "Output_data_got<64" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*pOVar11" * identifier)) --) ;) (declaration "Output_section *pOVar12;" type_identifier (pointer_declarator "*pOVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Var15;" type_identifier (pointer_declarator "*p_Var15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "undefined4 in_stack_fffffe0c;" type_identifier identifier ;) (declaration "undefined4 uStack_1e4;" type_identifier identifier ;) (declaration "undefined4 uStack_1e0;" type_identifier identifier ;) (declaration "undefined4 uStack_1dc;" type_identifier identifier ;) (declaration "undefined4 uStack_1cc;" type_identifier identifier ;) (declaration "undefined4 uStack_1c8;" type_identifier identifier ;) (declaration "undefined4 uStack_1c4;" type_identifier identifier ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "undefined4 in_stack_fffffe84;" type_identifier identifier ;) (declaration "undefined4 uStack_174;" type_identifier identifier ;) (declaration "undefined4 uStack_16c;" type_identifier identifier ;) (declaration "undefined4 uStack_154;" type_identifier identifier ;) (declaration "Relobj *pRVar19;" type_identifier (pointer_declarator "*pRVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "undefined4 in_stack_ffffff14;" type_identifier identifier ;) (declaration "undefined4 uStack_e4;" type_identifier identifier ;) (declaration "undefined4 uStack_dc;" type_identifier identifier ;) (declaration "undefined4 uStack_c4;" type_identifier identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "undefined4 in_stack_ffffff88;" type_identifier identifier ;) (declaration "Relobj *in_stack_ffffff90;" type_identifier (pointer_declarator "*in_stack_ffffff90" * identifier) ;) (declaration "undefined4 in_stack_ffffff94;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "undefined4 in_stack_ffffffac;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar23 = 0x43a1d0;" (assignment_expression "iVar23 = 0x43a1d0" identifier = number_literal) ;) (expression_statement "uVar9 = shndx;" (assignment_expression "uVar9 = shndx" identifier = identifier) ;) (expression_statement "iVar6 = (*(object->super_Object)._vptr_Object[0x2b])(object,symndx,got_type);" (assignment_expression "iVar6 = (*(object->super_Object)._vptr_Object[0x2b])(object,symndx,got_type)" identifier = (call_expression "(*(object->super_Object)._vptr_Object[0x2b])(object,symndx,got_type)" (parenthesized_expression "(*(object->super_Object)._vptr_Object[0x2b])" ( (pointer_expression "*(object->super_Object)._vptr_Object[0x2b]" * (subscript_expression "(object->super_Object)._vptr_Object[0x2b]" (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(object,symndx,got_type)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if ((symndx + 0x80000003 < 3) || ((int)symndx < 0)) {\n    (**(code **)(iVar23 + -0x7e0c))\n              (*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8);\n    local_4c = in_stack_ffffff94;\n  }\n  else {\n    in_stack_ffffff88 = 0;\n    auVar1._8_4_ = 0xfffffffa;\n    auVar1._12_4_ = local_2c;\n    auVar1._0_8_ = 0;\n    got_entry_1_02._0_16_ = auVar1 << 0x40;\n    got_entry_1_02.addend_._0_4_ = object;\n    got_entry_1_02.addend_._4_4_ = local_4c;\n    auVar2._8_4_ = symndx << 1;\n    auVar2._12_4_ = local_44;\n    auVar2._0_8_ = 0;\n    got_entry_2_02._0_16_ = auVar2 << 0x40;\n    got_entry_2_02.addend_._0_4_ = iVar23;\n    got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;\n    in_stack_ffffff90 = object;\n    uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02);\n    piVar22 = (int *)0x0;\n    uVar21 = 0;\n    uVar9 = uVar7;\n    (*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type);\n    p_Var15 = (object->super_Object)._vptr_Object[0x18];\n    if (p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)) {\n      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);\nLAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);\n      return;\n    }\n    ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    if (shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {\n      pOVar12 = ppOVar10[shndx];\n      goto LAB_001aba54;\n    }\n  }" if (parenthesized_expression "((symndx + 0x80000003 < 3) || ((int)symndx < 0))" ( (binary_expression "(symndx + 0x80000003 < 3) || ((int)symndx < 0)" (parenthesized_expression "(symndx + 0x80000003 < 3)" ( (binary_expression "symndx + 0x80000003 < 3" (binary_expression "symndx + 0x80000003" identifier + number_literal) < number_literal) )) || (parenthesized_expression "((int)symndx < 0)" ( (binary_expression "(int)symndx < 0" (cast_expression "(int)symndx" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (compound_statement "{\n    (**(code **)(iVar23 + -0x7e0c))\n              (*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8);\n    local_4c = in_stack_ffffff94;\n  }" { (expression_statement "(**(code **)(iVar23 + -0x7e0c))\n              (*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8);" (call_expression "(**(code **)(iVar23 + -0x7e0c))\n              (*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8)" (parenthesized_expression "(**(code **)(iVar23 + -0x7e0c))" ( (pointer_expression "**(code **)(iVar23 + -0x7e0c)" * (pointer_expression "*(code **)(iVar23 + -0x7e0c)" * (cast_expression "(code **)(iVar23 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + -0x7e0c)" ( (binary_expression "iVar23 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar23 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(iVar23 + -0x7e1c) + 0x5ee8)" ( (binary_expression "*(int *)(iVar23 + -0x7e1c) + -0x4fe0" (pointer_expression "*(int *)(iVar23 + -0x7e1c)" * (cast_expression "(int *)(iVar23 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x7e1c)" ( (binary_expression "iVar23 + -0x7e1c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(iVar23 + -0x7e1c) + 0x5ee8" (pointer_expression "*(int *)(iVar23 + -0x7e1c)" * (cast_expression "(int *)(iVar23 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x7e1c)" ( (binary_expression "iVar23 + -0x7e1c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "local_4c = in_stack_ffffff94;" (assignment_expression "local_4c = in_stack_ffffff94" identifier = identifier) ;) }) (else_clause "else {\n    in_stack_ffffff88 = 0;\n    auVar1._8_4_ = 0xfffffffa;\n    auVar1._12_4_ = local_2c;\n    auVar1._0_8_ = 0;\n    got_entry_1_02._0_16_ = auVar1 << 0x40;\n    got_entry_1_02.addend_._0_4_ = object;\n    got_entry_1_02.addend_._4_4_ = local_4c;\n    auVar2._8_4_ = symndx << 1;\n    auVar2._12_4_ = local_44;\n    auVar2._0_8_ = 0;\n    got_entry_2_02._0_16_ = auVar2 << 0x40;\n    got_entry_2_02.addend_._0_4_ = iVar23;\n    got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;\n    in_stack_ffffff90 = object;\n    uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02);\n    piVar22 = (int *)0x0;\n    uVar21 = 0;\n    uVar9 = uVar7;\n    (*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type);\n    p_Var15 = (object->super_Object)._vptr_Object[0x18];\n    if (p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)) {\n      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);\nLAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);\n      return;\n    }\n    ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    if (shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {\n      pOVar12 = ppOVar10[shndx];\n      goto LAB_001aba54;\n    }\n  }" else (compound_statement "{\n    in_stack_ffffff88 = 0;\n    auVar1._8_4_ = 0xfffffffa;\n    auVar1._12_4_ = local_2c;\n    auVar1._0_8_ = 0;\n    got_entry_1_02._0_16_ = auVar1 << 0x40;\n    got_entry_1_02.addend_._0_4_ = object;\n    got_entry_1_02.addend_._4_4_ = local_4c;\n    auVar2._8_4_ = symndx << 1;\n    auVar2._12_4_ = local_44;\n    auVar2._0_8_ = 0;\n    got_entry_2_02._0_16_ = auVar2 << 0x40;\n    got_entry_2_02.addend_._0_4_ = iVar23;\n    got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;\n    in_stack_ffffff90 = object;\n    uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02);\n    piVar22 = (int *)0x0;\n    uVar21 = 0;\n    uVar9 = uVar7;\n    (*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type);\n    p_Var15 = (object->super_Object)._vptr_Object[0x18];\n    if (p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)) {\n      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);\nLAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);\n      return;\n    }\n    ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;\n    if (shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {\n      pOVar12 = ppOVar10[shndx];\n      goto LAB_001aba54;\n    }\n  }" { (expression_statement "in_stack_ffffff88 = 0;" (assignment_expression "in_stack_ffffff88 = 0" identifier = number_literal) ;) (expression_statement "auVar1._8_4_ = 0xfffffffa;" (assignment_expression "auVar1._8_4_ = 0xfffffffa" (field_expression "auVar1._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar1._12_4_ = local_2c;" (assignment_expression "auVar1._12_4_ = local_2c" (field_expression "auVar1._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar1._0_8_ = 0;" (assignment_expression "auVar1._0_8_ = 0" (field_expression "auVar1._0_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry_1_02._0_16_ = auVar1 << 0x40;" (assignment_expression "got_entry_1_02._0_16_ = auVar1 << 0x40" (field_expression "got_entry_1_02._0_16_" identifier . field_identifier) = (binary_expression "auVar1 << 0x40" identifier << number_literal)) ;) (expression_statement "got_entry_1_02.addend_._0_4_ = object;" (assignment_expression "got_entry_1_02.addend_._0_4_ = object" (field_expression "got_entry_1_02.addend_._0_4_" (field_expression "got_entry_1_02.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_1_02.addend_._4_4_ = local_4c;" (assignment_expression "got_entry_1_02.addend_._4_4_ = local_4c" (field_expression "got_entry_1_02.addend_._4_4_" (field_expression "got_entry_1_02.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "auVar2._8_4_ = symndx << 1;" (assignment_expression "auVar2._8_4_ = symndx << 1" (field_expression "auVar2._8_4_" identifier . field_identifier) = (binary_expression "symndx << 1" identifier << number_literal)) ;) (expression_statement "auVar2._12_4_ = local_44;" (assignment_expression "auVar2._12_4_ = local_44" (field_expression "auVar2._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar2._0_8_ = 0;" (assignment_expression "auVar2._0_8_ = 0" (field_expression "auVar2._0_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry_2_02._0_16_ = auVar2 << 0x40;" (assignment_expression "got_entry_2_02._0_16_ = auVar2 << 0x40" (field_expression "got_entry_2_02._0_16_" identifier . field_identifier) = (binary_expression "auVar2 << 0x40" identifier << number_literal)) ;) (expression_statement "got_entry_2_02.addend_._0_4_ = iVar23;" (assignment_expression "got_entry_2_02.addend_._0_4_ = iVar23" (field_expression "got_entry_2_02.addend_._0_4_" (field_expression "got_entry_2_02.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;" (assignment_expression "got_entry_2_02.addend_._4_4_ = in_stack_ffffffac" (field_expression "got_entry_2_02.addend_._4_4_" (field_expression "got_entry_2_02.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "in_stack_ffffff90 = object;" (assignment_expression "in_stack_ffffff90 = object" identifier = identifier) ;) (expression_statement "uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02);" (assignment_expression "uVar7 = add_got_entry_pair(this,got_entry_1_02,got_entry_2_02)" identifier = (call_expression "add_got_entry_pair(this,got_entry_1_02,got_entry_2_02)" identifier (argument_list "(this,got_entry_1_02,got_entry_2_02)" ( identifier , identifier , identifier )))) ;) (expression_statement "piVar22 = (int *)0x0;" (assignment_expression "piVar22 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) (expression_statement "(*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type);" (call_expression "(*(object->super_Object)._vptr_Object[0x2d])(object,symndx,got_type)" (parenthesized_expression "(*(object->super_Object)._vptr_Object[0x2d])" ( (pointer_expression "*(object->super_Object)._vptr_Object[0x2d]" * (subscript_expression "(object->super_Object)._vptr_Object[0x2d]" (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(object,symndx,got_type)" ( identifier , identifier , identifier ))) ;) (expression_statement "p_Var15 = (object->super_Object)._vptr_Object[0x18];" (assignment_expression "p_Var15 = (object->super_Object)._vptr_Object[0x18]" identifier = (subscript_expression "(object->super_Object)._vptr_Object[0x18]" (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)) {\n      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);\nLAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);\n      return;\n    }" if (parenthesized_expression "(p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260))" ( (binary_expression "p_Var15 != *(_func_int_varargs **)(iVar23 + -0x6260)" identifier != (pointer_expression "*(_func_int_varargs **)(iVar23 + -0x6260)" * (cast_expression "(_func_int_varargs **)(iVar23 + -0x6260)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + -0x6260)" ( (binary_expression "iVar23 + -0x6260" identifier + number_literal) ))))) )) (compound_statement "{\n      pOVar12 = (Output_section *)(*p_Var15)(object,shndx);\nLAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);\n      return;\n    }" { (expression_statement "pOVar12 = (Output_section *)(*p_Var15)(object,shndx);" (assignment_expression "pOVar12 = (Output_section *)(*p_Var15)(object,shndx)" identifier = (cast_expression "(Output_section *)(*p_Var15)(object,shndx)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var15)(object,shndx)" (parenthesized_expression "(*p_Var15)" ( (pointer_expression "*p_Var15" * identifier) )) (argument_list "(object,shndx)" ( identifier , identifier ))))) ;) (labeled_statement "LAB_001aba54:\n      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);" statement_identifier : (expression_statement "(*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);" (call_expression "(*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0)" (parenthesized_expression "(*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d])" ( (pointer_expression "*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d]" * (subscript_expression "(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data[0x1d]" (field_expression "(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.\n        _vptr_Output_data" (field_expression "(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data" (field_expression "(rel_dyn->super_Output_section_data_build).super_Output_section_data" (parenthesized_expression "(rel_dyn->super_Output_section_data_build)" ( (field_expression "rel_dyn->super_Output_section_data_build" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) )) (argument_list "(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0)" ( identifier , identifier , identifier , identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (return_statement "return;" return ;) })) (expression_statement "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start;" (field_expression "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl._M_start" (field_expression "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n               _M_impl" (binary_expression "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar10 = (object->output_sections_).\n               super__Vector_base<gold" identifier = (binary_expression "(object->output_sections_).\n               super__Vector_base<gold" (field_expression "(object->output_sections_).\n               super__Vector_base" (parenthesized_expression "(object->output_sections_)" ( (field_expression "object->output_sections_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if (shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {\n      pOVar12 = ppOVar10[shndx];\n      goto LAB_001aba54;\n    }" if (parenthesized_expression "(shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2))" ( (binary_expression "shndx < (uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)" identifier < (call_expression "(uint)((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2)" ( (binary_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10 >> 2" (binary_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish - (int)ppOVar10" (field_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl._M_finish" (field_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                            ._M_impl" (binary_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(object->output_sections_).\n                            super__Vector_base<gold" (cast_expression "(int)(object->output_sections_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->output_sections_).\n                            super__Vector_base" (parenthesized_expression "(object->output_sections_)" ( (field_expression "object->output_sections_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar10" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) )) (compound_statement "{\n      pOVar12 = ppOVar10[shndx];\n      goto LAB_001aba54;\n    }" { (expression_statement "pOVar12 = ppOVar10[shndx];" (assignment_expression "pOVar12 = ppOVar10[shndx]" identifier = (subscript_expression "ppOVar10[shndx]" identifier [ identifier ])) ;) (goto_statement "goto LAB_001aba54;" goto statement_identifier ;) })) }))) (expression_statement "piVar13 = (int *)&DAT_000005c8;" (assignment_expression "piVar13 = (int *)&DAT_000005c8" identifier = (cast_expression "(int *)&DAT_000005c8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;) (expression_statement "pcVar16 = *(code **)(iVar23 + -0x7e0c);" (assignment_expression "pcVar16 = *(code **)(iVar23 + -0x7e0c)" identifier = (pointer_expression "*(code **)(iVar23 + -0x7e0c)" * (cast_expression "(code **)(iVar23 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar23 + -0x7e0c)" ( (binary_expression "iVar23 + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(iVar23 + -0x7e1c) + 0x6e8c;" (assignment_expression "iVar14 = *(int *)(iVar23 + -0x7e1c) + 0x6e8c" identifier = (binary_expression "*(int *)(iVar23 + -0x7e1c) + 0x6e8c" (pointer_expression "*(int *)(iVar23 + -0x7e1c)" * (cast_expression "(int *)(iVar23 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x7e1c)" ( (binary_expression "iVar23 + -0x7e1c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pOVar11 = (Output_data_got<64,_false> *)(*(int *)(iVar23 + -0x7fc4) + 0x44a8);" (assignment_expression "pOVar11 = (Output_data_got<64,_false> *)(*(int *)(iVar23 + -0x7fc4) + 0x44a8)" identifier = (call_expression "(Output_data_got<64,_false> *)(*(int *)(iVar23 + -0x7fc4) + 0x44a8)" (parenthesized_expression "(Output_data_got<64,_false> *)" ( (comma_expression "Output_data_got<64,_false> *" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(int *)(iVar23 + -0x7fc4) + 0x44a8)" ( (binary_expression "*(int *)(iVar23 + -0x7fc4) + 0x44a8" (pointer_expression "*(int *)(iVar23 + -0x7fc4)" * (cast_expression "(int *)(iVar23 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + -0x7fc4)" ( (binary_expression "iVar23 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = pcVar16 + 0x28e6dc;" (assignment_expression "pcVar16 = pcVar16 + 0x28e6dc" identifier = (binary_expression "pcVar16 + 0x28e6dc" identifier + number_literal)) ;) (expression_statement "pRVar19 = in_stack_ffffff90;" (assignment_expression "pRVar19 = in_stack_ffffff90" identifier = identifier) ;) (expression_statement "uVar20 = local_4c;" (assignment_expression "uVar20 = local_4c" identifier = identifier) ;) (expression_statement "iVar6 = (**(code **)(*piVar13 + 0xac))(piVar13,iVar14,uVar21);" (assignment_expression "iVar6 = (**(code **)(*piVar13 + 0xac))(piVar13,iVar14,uVar21)" identifier = (call_expression "(**(code **)(*piVar13 + 0xac))(piVar13,iVar14,uVar21)" (parenthesized_expression "(**(code **)(*piVar13 + 0xac))" ( (pointer_expression "**(code **)(*piVar13 + 0xac)" * (pointer_expression "*(code **)(*piVar13 + 0xac)" * (cast_expression "(code **)(*piVar13 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0xac)" ( (binary_expression "*piVar13 + 0xac" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "(piVar13,iVar14,uVar21)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (if_statement "if ((2 < iVar14 + 0x80000003U) && (-1 < iVar14)) {\n    auVar3._8_4_ = 0xfffffffa;\n    auVar3._12_4_ = uStack_c4;\n    auVar3._0_8_ = 0;\n    got_entry_1_01._0_16_ = auVar3 << 0x40;\n    got_entry_1_01.addend_._0_4_ = piVar13;\n    got_entry_1_01.addend_._4_4_ = uStack_e4;\n    got_entry_2_01.u_.object = (Relobj *)(iVar14 << 1);\n    got_entry_2_01.u_.constant._4_4_ = uStack_dc;\n    got_entry_2_01._8_4_ = in_stack_ffffff90;\n    got_entry_2_01._12_4_ = local_4c;\n    got_entry_2_01.addend_._0_4_ = pcVar16;\n    got_entry_2_01.addend_._4_4_ = in_stack_ffffff14;\n    uVar8 = add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01);\n    uVar7 = uVar8;\n    pRVar19 = in_stack_ffffff90;\n    uVar20 = local_4c;\n    (**(code **)(*piVar13 + 0xb4))(piVar13,iVar14,uVar21);\n    if (*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260)) {\n      if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;\n      uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);\n    }\n    else {\n      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);\n    }\n                    /* WARNING: Could not recover jumptable at 0x001abcd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*piVar22 + 0x74))\n              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c);\n    return;\n  }" if (parenthesized_expression "((2 < iVar14 + 0x80000003U) && (-1 < iVar14))" ( (binary_expression "(2 < iVar14 + 0x80000003U) && (-1 < iVar14)" (parenthesized_expression "(2 < iVar14 + 0x80000003U)" ( (binary_expression "2 < iVar14 + 0x80000003U" number_literal < (binary_expression "iVar14 + 0x80000003U" identifier + number_literal)) )) && (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) ))) )) (compound_statement "{\n    auVar3._8_4_ = 0xfffffffa;\n    auVar3._12_4_ = uStack_c4;\n    auVar3._0_8_ = 0;\n    got_entry_1_01._0_16_ = auVar3 << 0x40;\n    got_entry_1_01.addend_._0_4_ = piVar13;\n    got_entry_1_01.addend_._4_4_ = uStack_e4;\n    got_entry_2_01.u_.object = (Relobj *)(iVar14 << 1);\n    got_entry_2_01.u_.constant._4_4_ = uStack_dc;\n    got_entry_2_01._8_4_ = in_stack_ffffff90;\n    got_entry_2_01._12_4_ = local_4c;\n    got_entry_2_01.addend_._0_4_ = pcVar16;\n    got_entry_2_01.addend_._4_4_ = in_stack_ffffff14;\n    uVar8 = add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01);\n    uVar7 = uVar8;\n    pRVar19 = in_stack_ffffff90;\n    uVar20 = local_4c;\n    (**(code **)(*piVar13 + 0xb4))(piVar13,iVar14,uVar21);\n    if (*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260)) {\n      if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;\n      uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);\n    }\n    else {\n      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);\n    }\n                    /* WARNING: Could not recover jumptable at 0x001abcd8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*piVar22 + 0x74))\n              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c);\n    return;\n  }" { (expression_statement "auVar3._8_4_ = 0xfffffffa;" (assignment_expression "auVar3._8_4_ = 0xfffffffa" (field_expression "auVar3._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar3._12_4_ = uStack_c4;" (assignment_expression "auVar3._12_4_ = uStack_c4" (field_expression "auVar3._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar3._0_8_ = 0;" (assignment_expression "auVar3._0_8_ = 0" (field_expression "auVar3._0_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry_1_01._0_16_ = auVar3 << 0x40;" (assignment_expression "got_entry_1_01._0_16_ = auVar3 << 0x40" (field_expression "got_entry_1_01._0_16_" identifier . field_identifier) = (binary_expression "auVar3 << 0x40" identifier << number_literal)) ;) (expression_statement "got_entry_1_01.addend_._0_4_ = piVar13;" (assignment_expression "got_entry_1_01.addend_._0_4_ = piVar13" (field_expression "got_entry_1_01.addend_._0_4_" (field_expression "got_entry_1_01.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_1_01.addend_._4_4_ = uStack_e4;" (assignment_expression "got_entry_1_01.addend_._4_4_ = uStack_e4" (field_expression "got_entry_1_01.addend_._4_4_" (field_expression "got_entry_1_01.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2_01.u_.object = (Relobj *)(iVar14 << 1);" (assignment_expression "got_entry_2_01.u_.object = (Relobj *)(iVar14 << 1)" (field_expression "got_entry_2_01.u_.object" (field_expression "got_entry_2_01.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Relobj *)(iVar14 << 1)" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 << 1)" ( (binary_expression "iVar14 << 1" identifier << number_literal) )))) ;) (expression_statement "got_entry_2_01.u_.constant._4_4_ = uStack_dc;" (assignment_expression "got_entry_2_01.u_.constant._4_4_ = uStack_dc" (field_expression "got_entry_2_01.u_.constant._4_4_" (field_expression "got_entry_2_01.u_.constant" (field_expression "got_entry_2_01.u_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2_01._8_4_ = in_stack_ffffff90;" (assignment_expression "got_entry_2_01._8_4_ = in_stack_ffffff90" (field_expression "got_entry_2_01._8_4_" identifier . field_identifier) = identifier) ;) (expression_statement "got_entry_2_01._12_4_ = local_4c;" (assignment_expression "got_entry_2_01._12_4_ = local_4c" (field_expression "got_entry_2_01._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "got_entry_2_01.addend_._0_4_ = pcVar16;" (assignment_expression "got_entry_2_01.addend_._0_4_ = pcVar16" (field_expression "got_entry_2_01.addend_._0_4_" (field_expression "got_entry_2_01.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2_01.addend_._4_4_ = in_stack_ffffff14;" (assignment_expression "got_entry_2_01.addend_._4_4_ = in_stack_ffffff14" (field_expression "got_entry_2_01.addend_._4_4_" (field_expression "got_entry_2_01.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "uVar8 = add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01);" (assignment_expression "uVar8 = add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01)" identifier = (call_expression "add_got_entry_pair(pOVar11,got_entry_1_01,got_entry_2_01)" identifier (argument_list "(pOVar11,got_entry_1_01,got_entry_2_01)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) (expression_statement "pRVar19 = in_stack_ffffff90;" (assignment_expression "pRVar19 = in_stack_ffffff90" identifier = identifier) ;) (expression_statement "uVar20 = local_4c;" (assignment_expression "uVar20 = local_4c" identifier = identifier) ;) (expression_statement "(**(code **)(*piVar13 + 0xb4))(piVar13,iVar14,uVar21);" (call_expression "(**(code **)(*piVar13 + 0xb4))(piVar13,iVar14,uVar21)" (parenthesized_expression "(**(code **)(*piVar13 + 0xb4))" ( (pointer_expression "**(code **)(*piVar13 + 0xb4)" * (pointer_expression "*(code **)(*piVar13 + 0xb4)" * (cast_expression "(code **)(*piVar13 + 0xb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0xb4)" ( (binary_expression "*piVar13 + 0xb4" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "(piVar13,iVar14,uVar21)" ( identifier , identifier , identifier ))) ;) (if_statement "if (*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260)) {\n      if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;\n      uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);\n    }\n    else {\n      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);\n    }" if (parenthesized_expression "(*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260))" ( (binary_expression "*(code **)(*piVar13 + 0x60) == *(code **)(pcVar16 + -0x6260)" (pointer_expression "*(code **)(*piVar13 + 0x60)" * (cast_expression "(code **)(*piVar13 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0x60)" ( (binary_expression "*piVar13 + 0x60" (pointer_expression "*piVar13" * identifier) + number_literal) )))) == (pointer_expression "*(code **)(pcVar16 + -0x6260)" * (cast_expression "(code **)(pcVar16 + -0x6260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + -0x6260)" ( (binary_expression "pcVar16 + -0x6260" identifier + number_literal) ))))) )) (compound_statement "{\n      if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;\n      uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);\n    }" { (if_statement "if ((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9) goto LAB_001abd40;" if (parenthesized_expression "((uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9)" ( (binary_expression "(uint)(piVar13[0xf] - piVar13[0xe] >> 2) <= uVar9" (call_expression "(uint)(piVar13[0xf] - piVar13[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar13[0xf] - piVar13[0xe] >> 2)" ( (binary_expression "piVar13[0xf] - piVar13[0xe] >> 2" (binary_expression "piVar13[0xf] - piVar13[0xe]" (subscript_expression "piVar13[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar13[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (goto_statement "goto LAB_001abd40;" goto statement_identifier ;)) (expression_statement "uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4);" (assignment_expression "uVar21 = *(undefined4 *)(piVar13[0xe] + uVar9 * 4)" identifier = (pointer_expression "*(undefined4 *)(piVar13[0xe] + uVar9 * 4)" * (cast_expression "(undefined4 *)(piVar13[0xe] + uVar9 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar13[0xe] + uVar9 * 4)" ( (binary_expression "piVar13[0xe] + uVar9 * 4" (subscript_expression "piVar13[0xe]" identifier [ number_literal ]) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);\n    }" else (compound_statement "{\n      uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);\n    }" { (expression_statement "uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9);" (assignment_expression "uVar21 = (**(code **)(*piVar13 + 0x60))(piVar13,uVar9)" identifier = (call_expression "(**(code **)(*piVar13 + 0x60))(piVar13,uVar9)" (parenthesized_expression "(**(code **)(*piVar13 + 0x60))" ( (pointer_expression "**(code **)(*piVar13 + 0x60)" * (pointer_expression "*(code **)(*piVar13 + 0x60)" * (cast_expression "(code **)(*piVar13 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar13 + 0x60)" ( (binary_expression "*piVar13 + 0x60" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) )) (argument_list "(piVar13,uVar9)" ( identifier , identifier )))) ;) }))) comment comment (expression_statement "(**(code **)(*piVar22 + 0x74))\n              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c);" (call_expression "(**(code **)(*piVar22 + 0x74))\n              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c)" (parenthesized_expression "(**(code **)(*piVar22 + 0x74))" ( (pointer_expression "**(code **)(*piVar22 + 0x74)" * (pointer_expression "*(code **)(*piVar22 + 0x74)" * (cast_expression "(code **)(*piVar22 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + 0x74)" ( (binary_expression "*piVar22 + 0x74" (pointer_expression "*piVar22" * identifier) + number_literal) ))))) )) (argument_list "(piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c)" ( identifier , identifier , identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar16 + -0x7e0c))\n            (*(int *)(pcVar16 + -0x7e1c) + -0x4fe0,0xa5d,*(int *)(pcVar16 + -0x7e1c) + 0x5edc);" (call_expression "(**(code **)(pcVar16 + -0x7e0c))\n            (*(int *)(pcVar16 + -0x7e1c) + -0x4fe0,0xa5d,*(int *)(pcVar16 + -0x7e1c) + 0x5edc)" (parenthesized_expression "(**(code **)(pcVar16 + -0x7e0c))" ( (pointer_expression "**(code **)(pcVar16 + -0x7e0c)" * (pointer_expression "*(code **)(pcVar16 + -0x7e0c)" * (cast_expression "(code **)(pcVar16 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + -0x7e0c)" ( (binary_expression "pcVar16 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar16 + -0x7e1c) + -0x4fe0,0xa5d,*(int *)(pcVar16 + -0x7e1c) + 0x5edc)" ( (binary_expression "*(int *)(pcVar16 + -0x7e1c) + -0x4fe0" (pointer_expression "*(int *)(pcVar16 + -0x7e1c)" * (cast_expression "(int *)(pcVar16 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + -0x7e1c)" ( (binary_expression "pcVar16 + -0x7e1c" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar16 + -0x7e1c) + 0x5edc" (pointer_expression "*(int *)(pcVar16 + -0x7e1c)" * (cast_expression "(int *)(pcVar16 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + -0x7e1c)" ( (binary_expression "pcVar16 + -0x7e1c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_001abd40:\n  piVar22 = (int *)&DAT_000005c8;" statement_identifier : (expression_statement "piVar22 = (int *)&DAT_000005c8;" (assignment_expression "piVar22 = (int *)&DAT_000005c8" identifier = (cast_expression "(int *)&DAT_000005c8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000005c8" & identifier))) ;)) (expression_statement "pcVar17 = *(code **)(pcVar16 + -0x7e0c);" (assignment_expression "pcVar17 = *(code **)(pcVar16 + -0x7e0c)" identifier = (pointer_expression "*(code **)(pcVar16 + -0x7e0c)" * (cast_expression "(code **)(pcVar16 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar16 + -0x7e0c)" ( (binary_expression "pcVar16 + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "iVar23 = *(int *)(pcVar16 + -0x7e1c) + 0x6e8c;" (assignment_expression "iVar23 = *(int *)(pcVar16 + -0x7e1c) + 0x6e8c" identifier = (binary_expression "*(int *)(pcVar16 + -0x7e1c) + 0x6e8c" (pointer_expression "*(int *)(pcVar16 + -0x7e1c)" * (cast_expression "(int *)(pcVar16 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + -0x7e1c)" ( (binary_expression "pcVar16 + -0x7e1c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar16 + -0x7fc4) + 0x44a8);" (assignment_expression "pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar16 + -0x7fc4) + 0x44a8)" identifier = (call_expression "(Output_data_got<64,_false> *)(*(int *)(pcVar16 + -0x7fc4) + 0x44a8)" (parenthesized_expression "(Output_data_got<64,_false> *)" ( (comma_expression "Output_data_got<64,_false> *" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(int *)(pcVar16 + -0x7fc4) + 0x44a8)" ( (binary_expression "*(int *)(pcVar16 + -0x7fc4) + 0x44a8" (pointer_expression "*(int *)(pcVar16 + -0x7fc4)" * (cast_expression "(int *)(pcVar16 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + -0x7fc4)" ( (binary_expression "pcVar16 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar17)();" (call_expression "(*pcVar17)()" (parenthesized_expression "(*pcVar17)" ( (pointer_expression "*pcVar17" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar17 = pcVar17 + 0x28e474;" (assignment_expression "pcVar17 = pcVar17 + 0x28e474" identifier = (binary_expression "pcVar17 + 0x28e474" identifier + number_literal)) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = (**(code **)(*piVar22 + 0xac))(piVar22,iVar23,uVar7);" (assignment_expression "iVar6 = (**(code **)(*piVar22 + 0xac))(piVar22,iVar23,uVar7)" identifier = (call_expression "(**(code **)(*piVar22 + 0xac))(piVar22,iVar23,uVar7)" (parenthesized_expression "(**(code **)(*piVar22 + 0xac))" ( (pointer_expression "**(code **)(*piVar22 + 0xac)" * (pointer_expression "*(code **)(*piVar22 + 0xac)" * (cast_expression "(code **)(*piVar22 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + 0xac)" ( (binary_expression "*piVar22 + 0xac" (pointer_expression "*piVar22" * identifier) + number_literal) ))))) )) (argument_list "(piVar22,iVar23,uVar7)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n    if ((iVar23 + 0x80000003U < 3) || (iVar23 < 0)) {\n      pcVar16 = *(code **)(pcVar17 + -0x7e0c);\n      pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);\n      (*pcVar16)(pOVar11,0xa50);\n      got_entry_1.u_.object = (Relobj *)0xfffffffc;\n      got_entry_1.u_.constant._4_4_ = uStack_1cc;\n      got_entry_1._8_4_ = uStack_1c8;\n      got_entry_1._12_4_ = uStack_1c4;\n      got_entry_1.addend_._0_4_ = uVar21;\n      got_entry_1.addend_._4_4_ = uVar18;\n      got_entry_2.u_.object = (Relobj *)0xfffffffc;\n      got_entry_2.u_.constant._4_4_ = uStack_1e4;\n      got_entry_2._8_4_ = uStack_1e0;\n      got_entry_2._12_4_ = uStack_1dc;\n      got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;\n      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;\n      add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);\n      return;\n    }\n    auVar4._8_4_ = 0xfffffffa;\n    auVar4._12_4_ = uStack_154;\n    auVar4._0_8_ = 0;\n    got_entry_1_00._0_16_ = auVar4 << 0x40;\n    got_entry_1_00.addend_._0_4_ = piVar22;\n    got_entry_1_00.addend_._4_4_ = uStack_174;\n    auVar5._0_8_ = 0;\n    auVar5._8_8_ = CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000;\n    got_entry_2_00._0_16_ = auVar5 << 0x40;\n    got_entry_2_00.addend_._0_4_ = pcVar17;\n    got_entry_2_00.addend_._4_4_ = in_stack_fffffe84;\n    uVar9 = add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00);\n    uVar21 = 0;\n    (**(code **)(*piVar22 + 0xb4))(piVar22,iVar23,uVar7,uVar9,0,0);\n    (*(pRVar19->super_Object)._vptr_Object[0x1b])\n              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0);\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((iVar23 + 0x80000003U < 3) || (iVar23 < 0)) {\n      pcVar16 = *(code **)(pcVar17 + -0x7e0c);\n      pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);\n      (*pcVar16)(pOVar11,0xa50);\n      got_entry_1.u_.object = (Relobj *)0xfffffffc;\n      got_entry_1.u_.constant._4_4_ = uStack_1cc;\n      got_entry_1._8_4_ = uStack_1c8;\n      got_entry_1._12_4_ = uStack_1c4;\n      got_entry_1.addend_._0_4_ = uVar21;\n      got_entry_1.addend_._4_4_ = uVar18;\n      got_entry_2.u_.object = (Relobj *)0xfffffffc;\n      got_entry_2.u_.constant._4_4_ = uStack_1e4;\n      got_entry_2._8_4_ = uStack_1e0;\n      got_entry_2._12_4_ = uStack_1dc;\n      got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;\n      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;\n      add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);\n      return;\n    }\n    auVar4._8_4_ = 0xfffffffa;\n    auVar4._12_4_ = uStack_154;\n    auVar4._0_8_ = 0;\n    got_entry_1_00._0_16_ = auVar4 << 0x40;\n    got_entry_1_00.addend_._0_4_ = piVar22;\n    got_entry_1_00.addend_._4_4_ = uStack_174;\n    auVar5._0_8_ = 0;\n    auVar5._8_8_ = CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000;\n    got_entry_2_00._0_16_ = auVar5 << 0x40;\n    got_entry_2_00.addend_._0_4_ = pcVar17;\n    got_entry_2_00.addend_._4_4_ = in_stack_fffffe84;\n    uVar9 = add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00);\n    uVar21 = 0;\n    (**(code **)(*piVar22 + 0xb4))(piVar22,iVar23,uVar7,uVar9,0,0);\n    (*(pRVar19->super_Object)._vptr_Object[0x1b])\n              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0);\n  }" { (if_statement "if ((iVar23 + 0x80000003U < 3) || (iVar23 < 0)) {\n      pcVar16 = *(code **)(pcVar17 + -0x7e0c);\n      pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);\n      (*pcVar16)(pOVar11,0xa50);\n      got_entry_1.u_.object = (Relobj *)0xfffffffc;\n      got_entry_1.u_.constant._4_4_ = uStack_1cc;\n      got_entry_1._8_4_ = uStack_1c8;\n      got_entry_1._12_4_ = uStack_1c4;\n      got_entry_1.addend_._0_4_ = uVar21;\n      got_entry_1.addend_._4_4_ = uVar18;\n      got_entry_2.u_.object = (Relobj *)0xfffffffc;\n      got_entry_2.u_.constant._4_4_ = uStack_1e4;\n      got_entry_2._8_4_ = uStack_1e0;\n      got_entry_2._12_4_ = uStack_1dc;\n      got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;\n      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;\n      add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);\n      return;\n    }" if (parenthesized_expression "((iVar23 + 0x80000003U < 3) || (iVar23 < 0))" ( (binary_expression "(iVar23 + 0x80000003U < 3) || (iVar23 < 0)" (parenthesized_expression "(iVar23 + 0x80000003U < 3)" ( (binary_expression "iVar23 + 0x80000003U < 3" (binary_expression "iVar23 + 0x80000003U" identifier + number_literal) < number_literal) )) || (parenthesized_expression "(iVar23 < 0)" ( (binary_expression "iVar23 < 0" identifier < number_literal) ))) )) (compound_statement "{\n      pcVar16 = *(code **)(pcVar17 + -0x7e0c);\n      pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);\n      (*pcVar16)(pOVar11,0xa50);\n      got_entry_1.u_.object = (Relobj *)0xfffffffc;\n      got_entry_1.u_.constant._4_4_ = uStack_1cc;\n      got_entry_1._8_4_ = uStack_1c8;\n      got_entry_1._12_4_ = uStack_1c4;\n      got_entry_1.addend_._0_4_ = uVar21;\n      got_entry_1.addend_._4_4_ = uVar18;\n      got_entry_2.u_.object = (Relobj *)0xfffffffc;\n      got_entry_2.u_.constant._4_4_ = uStack_1e4;\n      got_entry_2._8_4_ = uStack_1e0;\n      got_entry_2._12_4_ = uStack_1dc;\n      got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;\n      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;\n      add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);\n      return;\n    }" { (expression_statement "pcVar16 = *(code **)(pcVar17 + -0x7e0c);" (assignment_expression "pcVar16 = *(code **)(pcVar17 + -0x7e0c)" identifier = (pointer_expression "*(code **)(pcVar17 + -0x7e0c)" * (cast_expression "(code **)(pcVar17 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar17 + -0x7e0c)" ( (binary_expression "pcVar17 + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0);" (assignment_expression "pOVar11 = (Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0)" identifier = (call_expression "(Output_data_got<64,_false> *)(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0)" (parenthesized_expression "(Output_data_got<64,_false> *)" ( (comma_expression "Output_data_got<64,_false> *" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "_false> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(int *)(pcVar17 + -0x7e1c) + -0x4fe0)" ( (binary_expression "*(int *)(pcVar17 + -0x7e1c) + -0x4fe0" (pointer_expression "*(int *)(pcVar17 + -0x7e1c)" * (cast_expression "(int *)(pcVar17 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + -0x7e1c)" ( (binary_expression "pcVar17 + -0x7e1c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar16)(pOVar11,0xa50);" (call_expression "(*pcVar16)(pOVar11,0xa50)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pOVar11,0xa50)" ( identifier , number_literal ))) ;) (expression_statement "got_entry_1.u_.object = (Relobj *)0xfffffffc;" (assignment_expression "got_entry_1.u_.object = (Relobj *)0xfffffffc" (field_expression "got_entry_1.u_.object" (field_expression "got_entry_1.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Relobj *)0xfffffffc" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "got_entry_1.u_.constant._4_4_ = uStack_1cc;" (assignment_expression "got_entry_1.u_.constant._4_4_ = uStack_1cc" (field_expression "got_entry_1.u_.constant._4_4_" (field_expression "got_entry_1.u_.constant" (field_expression "got_entry_1.u_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_1._8_4_ = uStack_1c8;" (assignment_expression "got_entry_1._8_4_ = uStack_1c8" (field_expression "got_entry_1._8_4_" identifier . field_identifier) = identifier) ;) (expression_statement "got_entry_1._12_4_ = uStack_1c4;" (assignment_expression "got_entry_1._12_4_ = uStack_1c4" (field_expression "got_entry_1._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "got_entry_1.addend_._0_4_ = uVar21;" (assignment_expression "got_entry_1.addend_._0_4_ = uVar21" (field_expression "got_entry_1.addend_._0_4_" (field_expression "got_entry_1.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_1.addend_._4_4_ = uVar18;" (assignment_expression "got_entry_1.addend_._4_4_ = uVar18" (field_expression "got_entry_1.addend_._4_4_" (field_expression "got_entry_1.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2.u_.object = (Relobj *)0xfffffffc;" (assignment_expression "got_entry_2.u_.object = (Relobj *)0xfffffffc" (field_expression "got_entry_2.u_.object" (field_expression "got_entry_2.u_" identifier . field_identifier) . field_identifier) = (cast_expression "(Relobj *)0xfffffffc" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "got_entry_2.u_.constant._4_4_ = uStack_1e4;" (assignment_expression "got_entry_2.u_.constant._4_4_ = uStack_1e4" (field_expression "got_entry_2.u_.constant._4_4_" (field_expression "got_entry_2.u_.constant" (field_expression "got_entry_2.u_" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2._8_4_ = uStack_1e0;" (assignment_expression "got_entry_2._8_4_ = uStack_1e0" (field_expression "got_entry_2._8_4_" identifier . field_identifier) = identifier) ;) (expression_statement "got_entry_2._12_4_ = uStack_1dc;" (assignment_expression "got_entry_2._12_4_ = uStack_1dc" (field_expression "got_entry_2._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8;" (assignment_expression "got_entry_2.addend_._0_4_ = pcVar16 + 0x28e2b8" (field_expression "got_entry_2.addend_._0_4_" (field_expression "got_entry_2.addend_" identifier . field_identifier) . field_identifier) = (binary_expression "pcVar16 + 0x28e2b8" identifier + number_literal)) ;) (expression_statement "got_entry_2.addend_._4_4_ = in_stack_fffffe0c;" (assignment_expression "got_entry_2.addend_._4_4_ = in_stack_fffffe0c" (field_expression "got_entry_2.addend_._4_4_" (field_expression "got_entry_2.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "add_got_entry_pair(pOVar11,got_entry_1,got_entry_2);" (call_expression "add_got_entry_pair(pOVar11,got_entry_1,got_entry_2)" identifier (argument_list "(pOVar11,got_entry_1,got_entry_2)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "auVar4._8_4_ = 0xfffffffa;" (assignment_expression "auVar4._8_4_ = 0xfffffffa" (field_expression "auVar4._8_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar4._12_4_ = uStack_154;" (assignment_expression "auVar4._12_4_ = uStack_154" (field_expression "auVar4._12_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auVar4._0_8_ = 0;" (assignment_expression "auVar4._0_8_ = 0" (field_expression "auVar4._0_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "got_entry_1_00._0_16_ = auVar4 << 0x40;" (assignment_expression "got_entry_1_00._0_16_ = auVar4 << 0x40" (field_expression "got_entry_1_00._0_16_" identifier . field_identifier) = (binary_expression "auVar4 << 0x40" identifier << number_literal)) ;) (expression_statement "got_entry_1_00.addend_._0_4_ = piVar22;" (assignment_expression "got_entry_1_00.addend_._0_4_ = piVar22" (field_expression "got_entry_1_00.addend_._0_4_" (field_expression "got_entry_1_00.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_1_00.addend_._4_4_ = uStack_174;" (assignment_expression "got_entry_1_00.addend_._4_4_ = uStack_174" (field_expression "got_entry_1_00.addend_._4_4_" (field_expression "got_entry_1_00.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "auVar5._0_8_ = 0;" (assignment_expression "auVar5._0_8_ = 0" (field_expression "auVar5._0_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar5._8_8_ = CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000;" (assignment_expression "auVar5._8_8_ = CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000" (field_expression "auVar5._8_8_" identifier . field_identifier) = (binary_expression "CONCAT44(iVar23 << 1,uStack_16c) | 0x100000000" (call_expression "CONCAT44(iVar23 << 1,uStack_16c)" identifier (argument_list "(iVar23 << 1,uStack_16c)" ( (binary_expression "iVar23 << 1" identifier << number_literal) , identifier ))) | number_literal)) ;) (expression_statement "got_entry_2_00._0_16_ = auVar5 << 0x40;" (assignment_expression "got_entry_2_00._0_16_ = auVar5 << 0x40" (field_expression "got_entry_2_00._0_16_" identifier . field_identifier) = (binary_expression "auVar5 << 0x40" identifier << number_literal)) ;) (expression_statement "got_entry_2_00.addend_._0_4_ = pcVar17;" (assignment_expression "got_entry_2_00.addend_._0_4_ = pcVar17" (field_expression "got_entry_2_00.addend_._0_4_" (field_expression "got_entry_2_00.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry_2_00.addend_._4_4_ = in_stack_fffffe84;" (assignment_expression "got_entry_2_00.addend_._4_4_ = in_stack_fffffe84" (field_expression "got_entry_2_00.addend_._4_4_" (field_expression "got_entry_2_00.addend_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "uVar9 = add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00);" (assignment_expression "uVar9 = add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00)" identifier = (call_expression "add_got_entry_pair(pOVar11,got_entry_1_00,got_entry_2_00)" identifier (argument_list "(pOVar11,got_entry_1_00,got_entry_2_00)" ( identifier , identifier , identifier )))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(*piVar22 + 0xb4))(piVar22,iVar23,uVar7,uVar9,0,0);" (call_expression "(**(code **)(*piVar22 + 0xb4))(piVar22,iVar23,uVar7,uVar9,0,0)" (parenthesized_expression "(**(code **)(*piVar22 + 0xb4))" ( (pointer_expression "**(code **)(*piVar22 + 0xb4)" * (pointer_expression "*(code **)(*piVar22 + 0xb4)" * (cast_expression "(code **)(*piVar22 + 0xb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar22 + 0xb4)" ( (binary_expression "*piVar22 + 0xb4" (pointer_expression "*piVar22" * identifier) + number_literal) ))))) )) (argument_list "(piVar22,iVar23,uVar7,uVar9,0,0)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(pRVar19->super_Object)._vptr_Object[0x1b])\n              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0);" (call_expression "(*(pRVar19->super_Object)._vptr_Object[0x1b])\n              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0)" (parenthesized_expression "(*(pRVar19->super_Object)._vptr_Object[0x1b])" ( (pointer_expression "*(pRVar19->super_Object)._vptr_Object[0x1b]" * (subscript_expression "(pRVar19->super_Object)._vptr_Object[0x1b]" (field_expression "(pRVar19->super_Object)._vptr_Object" (parenthesized_expression "(pRVar19->super_Object)" ( (field_expression "pRVar19->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,uVar9,0,0)" ( identifier , identifier , number_literal , identifier , identifier , identifier , number_literal , identifier , number_literal , number_literal ))) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)" identifier (parameter_list "(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (expression_statement "iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);" (assignment_expression "iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0)" identifier = (call_expression "(**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0)" (parenthesized_expression "(**(code **)(*param_2 + 0xac))" ( (pointer_expression "**(code **)(*param_2 + 0xac)" * (pointer_expression "*(code **)(*param_2 + 0xac)" * (cast_expression "(code **)(*param_2 + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xac)" ( (binary_expression "*param_2 + 0xac" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_5,param_4,0,0)" ( identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }" { (if_statement "if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }" if (parenthesized_expression "((param_3 + 0x80000003U < 3) || (param_3 < 0))" ( (binary_expression "(param_3 + 0x80000003U < 3) || (param_3 < 0)" (parenthesized_expression "(param_3 + 0x80000003U < 3)" ( (binary_expression "param_3 + 0x80000003U < 3" (binary_expression "param_3 + 0x80000003U" identifier + number_literal) < number_literal) )) || (parenthesized_expression "(param_3 < 0)" ( (binary_expression "param_3 < 0" identifier < number_literal) ))) )) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8)" ( (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5ee8" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (ERROR "uVar2 = gold::" (assignment_expression "uVar2 = gold" identifier = identifier) : :) (expression_statement "Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);" (comma_expression "Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" (binary_expression "Output_data_got<64" identifier < number_literal) , (binary_expression "false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" false > (ERROR "::" : :) (call_expression "add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" identifier (argument_list "(param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal , identifier , number_literal , number_literal , identifier , identifier , (binary_expression "param_3 << 1" identifier << number_literal) , identifier , number_literal , number_literal ))))) ;) (expression_statement "(**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);" (call_expression "(**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0)" (parenthesized_expression "(**(code **)(*param_2 + 0xb4))" ( (pointer_expression "**(code **)(*param_2 + 0xb4)" * (pointer_expression "*(code **)(*param_2 + 0xb4)" * (cast_expression "(code **)(*param_2 + 0xb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0xb4)" ( (binary_expression "*param_2 + 0xb4" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_5,uVar2,0,0)" ( identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" if (parenthesized_expression "(*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70)" ( (binary_expression "*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70" (pointer_expression "*(code **)(*param_2 + 0x60)" * (cast_expression "(code **)(*param_2 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x60)" ( (binary_expression "*param_2 + 0x60" (pointer_expression "*param_2" * identifier) + number_literal) )))) == (cast_expression "(code *)PTR_do_output_section_00433f70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }" { (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }" if (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4)" ( (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" ( (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" identifier [ number_literal ]) - (subscript_expression "param_2[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c)" ( (binary_expression "PTR_LAB_0043220c + 0x44a8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6e8c" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4)" identifier = (pointer_expression "*(undefined4 *)(param_2[0xe] + param_4 * 4)" * (cast_expression "(undefined4 *)(param_2[0xe] + param_4 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0xe] + param_4 * 4)" ( (binary_expression "param_2[0xe] + param_4 * 4" (subscript_expression "param_2[0xe]" identifier [ number_literal ]) + (binary_expression "param_4 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" else (compound_statement "{\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" { (expression_statement "uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);" (assignment_expression "uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4)" identifier = (call_expression "(**(code **)(*param_2 + 0x60))(param_2,param_4)" (parenthesized_expression "(**(code **)(*param_2 + 0x60))" ( (pointer_expression "**(code **)(*param_2 + 0x60)" * (pointer_expression "*(code **)(*param_2 + 0x60)" * (cast_expression "(code **)(*param_2 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x60)" ( (binary_expression "*param_2 + 0x60" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_4)" ( identifier , identifier )))) ;) }))) (expression_statement "(**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);" (call_expression "(**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0)" (parenthesized_expression "(**(code **)(*param_6 + 0x74))" ( (pointer_expression "**(code **)(*param_6 + 0x74)" * (pointer_expression "*(code **)(*param_6 + 0x74)" * (cast_expression "(code **)(*param_6 + 0x74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_6 + 0x74)" ( (binary_expression "*param_6 + 0x74" (pointer_expression "*param_6" * identifier) + number_literal) ))))) )) (argument_list "(param_6,uVar3,param_7,param_1,0,uVar2,0,0)" ( identifier , identifier , identifier , identifier , number_literal , identifier , number_literal , number_literal ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (ERROR (assignment_expression IDENT = IDENT) : :) (expression_statement (comma_expression (binary_expression IDENT < LIT) , (binary_expression BOOL > (ERROR : :) (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , LIT , IDENT , LIT , LIT , IDENT , IDENT , (binary_expression IDENT << LIT) , IDENT , LIT , LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , IDENT , LIT , LIT ))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001ab8d4(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)" (identifier "FUN_001ab8d4") (parameter_list "(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,\n                 int *param_6,undefined4 param_7)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 local_4c;\n  undefined4 local_44;\n  undefined4 local_2c;\n  \n  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);\n  if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (expression_statement "iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);" (assignment_expression "iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0)" (parenthesized_expression "(**(code **)(*param_2 + 0xac))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xac)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xac)" (* "*") (cast_expression "(code **)(*param_2 + 0xac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xac)" (( "(") (binary_expression "*param_2 + 0xac" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xac")) () ")"))))) () ")")) (argument_list "(param_2,param_3,param_5,param_4,0,0)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_5") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }\n    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);\n    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);\n    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }\n    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);\n  }" ({ "{") (if_statement "if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }" (if "if") (parenthesized_expression "((param_3 + 0x80000003U < 3) || (param_3 < 0))" (( "(") (binary_expression "(param_3 + 0x80000003U < 3) || (param_3 < 0)" (parenthesized_expression "(param_3 + 0x80000003U < 3)" (( "(") (binary_expression "param_3 + 0x80000003U < 3" (binary_expression "param_3 + 0x80000003U" (identifier "param_3") (+ "+") (number_literal "0x80000003U")) (< "<") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(param_3 < 0)" (( "(") (binary_expression "param_3 < 0" (identifier "param_3") (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      (*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);\n      return;\n    }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8)" (( "(") (binary_expression "PTR_s_alize_xindex_004323b4 + -0x4fe0" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "-0x4fe0")) (, ",") (number_literal "0xa50") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x5ee8" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x5ee8")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (ERROR "uVar2 = gold::" (assignment_expression "uVar2 = gold" (identifier "uVar2") (= "=") (identifier "gold")) (: ":") (: ":")) (expression_statement "Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0);" (comma_expression "Output_data_got<64,false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" (binary_expression "Output_data_got<64" (identifier "Output_data_got") (< "<") (number_literal "64")) (, ",") (binary_expression "false>::add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" (false "false") (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "add_got_entry_pair\n                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" (identifier "add_got_entry_pair") (argument_list "(param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,\n                       local_44,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0xfffffffa") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xfffffffa") (, ",") (identifier "local_2c") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "local_4c") (, ",") (binary_expression "param_3 << 1" (identifier "param_3") (<< "<<") (number_literal "1")) (, ",") (identifier "local_44") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);" (call_expression "(**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0)" (parenthesized_expression "(**(code **)(*param_2 + 0xb4))" (( "(") (pointer_expression "**(code **)(*param_2 + 0xb4)" (* "*") (pointer_expression "*(code **)(*param_2 + 0xb4)" (* "*") (cast_expression "(code **)(*param_2 + 0xb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0xb4)" (( "(") (binary_expression "*param_2 + 0xb4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0xb4")) () ")"))))) () ")")) (argument_list "(param_2,param_3,param_5,uVar2,0,0)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_5") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }\n    else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" (if "if") (parenthesized_expression "(*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70)" (( "(") (binary_expression "*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70" (pointer_expression "*(code **)(*param_2 + 0x60)" (* "*") (cast_expression "(code **)(*param_2 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x60)" (( "(") (binary_expression "*param_2 + 0x60" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (cast_expression "(code *)PTR_do_output_section_00433f70" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_output_section_00433f70"))) () ")")) (compound_statement "{\n      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }\n      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);\n    }" ({ "{") (if_statement "if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }" (if "if") (parenthesized_expression "((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4)" (( "(") (binary_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4" (call_expression "(uint)(param_2[0xf] - param_2[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2[0xf] - param_2[0xe] >> 2)" (( "(") (binary_expression "param_2[0xf] - param_2[0xe] >> 2" (binary_expression "param_2[0xf] - param_2[0xe]" (subscript_expression "param_2[0xf]" (identifier "param_2") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "param_4")) () ")")) (compound_statement "{\n        (*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);\n        return;\n      }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c)" (( "(") (binary_expression "PTR_LAB_0043220c + 0x44a8" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x44a8")) (, ",") (number_literal "0x5c8") (, ",") (binary_expression "PTR_s_alize_xindex_004323b4 + 0x6e8c" (identifier "PTR_s_alize_xindex_004323b4") (+ "+") (number_literal "0x6e8c")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);" (assignment_expression "uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_2[0xe] + param_4 * 4)" (* "*") (cast_expression "(undefined4 *)(param_2[0xe] + param_4 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0xe] + param_4 * 4)" (( "(") (binary_expression "param_2[0xe] + param_4 * 4" (subscript_expression "param_2[0xe]" (identifier "param_2") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" (else "else") (compound_statement "{\n      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);\n    }" ({ "{") (expression_statement "uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);" (assignment_expression "uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4)" (identifier "uVar3") (= "=") (call_expression "(**(code **)(*param_2 + 0x60))(param_2,param_4)" (parenthesized_expression "(**(code **)(*param_2 + 0x60))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x60)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x60)" (* "*") (cast_expression "(code **)(*param_2 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x60)" (( "(") (binary_expression "*param_2 + 0x60" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(param_2,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_4") () ")")))) (; ";")) (} "}")))) (expression_statement "(**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);" (call_expression "(**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0)" (parenthesized_expression "(**(code **)(*param_6 + 0x74))" (( "(") (pointer_expression "**(code **)(*param_6 + 0x74)" (* "*") (pointer_expression "*(code **)(*param_6 + 0x74)" (* "*") (cast_expression "(code **)(*param_6 + 0x74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_6 + 0x74)" (( "(") (binary_expression "*param_6 + 0x74" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (+ "+") (number_literal "0x74")) () ")"))))) () ")")) (argument_list "(param_6,uVar3,param_7,param_1,0,uVar2,0,0)" (( "(") (identifier "param_6") (, ",") (identifier "uVar3") (, ",") (identifier "param_7") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Struct "Output_section": ignoring overlapping field "name_" */
/* WARNING: Struct "Output_section_data": ignoring overlapping field "output_section_" */
/* 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 add_local_pair_with_rel(Output_data_got<64,_false> * this, Relobj
   * object, uint symndx, uint shndx, uint got_type, Output_data_reloc_generic * rel_dyn, uint
   r_type) */

void __thiscall
var_9::var_1<64,var_13>::add_local_pair_with_rel
          (var_1<64,var_13> *this,type_9 *object,type_3 var_3,type_3 var_12,type_3 got_type,
          Output_data_reloc_generic *rel_dyn,type_3 r_type)

{
  type_1 got_entry_1;
  type_1 got_entry_2;
  type_1 got_entry_1_00;
  type_1 got_entry_2_00;
  type_1 got_entry_1_01;
  type_1 got_entry_2_01;
  type_1 got_entry_1_02;
  type_1 got_entry_2_02;
  type_2 var_5 [16];
  type_2 var_6 [16];
  type_2 var_16 [16];
  type_2 var_19 [16];
  type_2 var_21 [16];
  int var_2;
  type_3 uVar7;
  type_3 uVar8;
  type_3 var_17;
  type_4 ppOVar10;
  var_1<64,var_13> *pOVar11;
  type_5 *pOVar12;
  int *piVar13;
  int var_15;
  type_6 *var_8;
  type_7 *var_14;
  type_7 *var_18;
  type_8 in_stack_fffffe0c;
  type_8 uStack_1e4;
  type_8 uStack_1e0;
  type_8 uStack_1dc;
  type_8 uStack_1cc;
  type_8 uStack_1c8;
  type_8 uStack_1c4;
  type_8 uVar18;
  type_8 in_stack_fffffe84;
  type_8 uStack_174;
  type_8 uStack_16c;
  type_8 uStack_154;
  type_9 *pRVar19;
  type_8 uVar20;
  type_8 in_stack_ffffff14;
  type_8 uStack_e4;
  type_8 uStack_dc;
  type_8 uStack_c4;
  type_8 uVar21;
  int *piVar22;
  type_8 in_stack_ffffff88;
  type_9 *in_stack_ffffff90;
  type_8 in_stack_ffffff94;
  int var_4;
  type_8 in_stack_ffffffac;
  type_8 local_4c;
  type_8 local_44;
  type_8 local_2c;
  
  piVar22 = (int *)0x0;
  uVar21 = 0;
  var_4 = 0x43a1d0;
  var_17 = var_12;
  var_2 = (*(object->super_Object)._vptr_Object[0x2b])(object,var_3,got_type);
  if (var_2 != 0) {
    return;
  }
  if ((var_3 + 0x80000003 < 3) || ((int)var_3 < 0)) {
    (**(type_7 **)(var_4 + -0x7e0c))
              (*(int *)(var_4 + -0x7e1c) + -0x4fe0,0xa50,*(int *)(var_4 + -0x7e1c) + 0x5ee8);
    local_4c = in_stack_ffffff94;
  }
  else {
    in_stack_ffffff88 = 0;
    var_5._8_4_ = 0xfffffffa;
    var_5._12_4_ = local_2c;
    var_5._0_8_ = 0;
    got_entry_1_02._0_16_ = var_5 << 0x40;
    got_entry_1_02.addend_._0_4_ = object;
    got_entry_1_02.addend_._4_4_ = local_4c;
    var_6._8_4_ = var_3 << 1;
    var_6._12_4_ = local_44;
    var_6._0_8_ = 0;
    got_entry_2_02._0_16_ = var_6 << 0x40;
    got_entry_2_02.addend_._0_4_ = var_4;
    got_entry_2_02.addend_._4_4_ = in_stack_ffffffac;
    in_stack_ffffff90 = object;
    uVar7 = var_7(this,got_entry_1_02,got_entry_2_02);
    piVar22 = (int *)0x0;
    uVar21 = 0;
    var_17 = uVar7;
    (*(object->super_Object)._vptr_Object[0x2d])(object,var_3,got_type);
    var_8 = (object->super_Object)._vptr_Object[0x18];
    if (var_8 != *(type_6 **)(var_4 + -0x6260)) {
      pOVar12 = (type_5 *)(*var_8)(object,var_12);
LAB_001aba54:
      (*(rel_dyn->super_Output_section_data_build).super_Output_section_data.super_Output_data.
        _vptr_Output_data[0x1d])(rel_dyn,pOVar12,r_type,this,0,uVar7,0,0);
      return;
    }
    ppOVar10 = (object->output_sections_).
               super__Vector_base<var_9::type_5*,var_10::allocator<var_9::type_5*>var_11>.
               _M_impl._M_start;
    if (var_12 < (type_3)((int)(object->output_sections_).
                            super__Vector_base<var_9::type_5*,var_10::allocator<var_9::type_5*>var_11>
                            ._M_impl._M_finish - (int)ppOVar10 >> 2)) {
      pOVar12 = ppOVar10[var_12];
      goto LAB_001aba54;
    }
  }
  piVar13 = (int *)&DAT_000005c8;
  var_14 = *(type_7 **)(var_4 + -0x7e0c);
  var_15 = *(int *)(var_4 + -0x7e1c) + 0x6e8c;
  pOVar11 = (var_1<64,var_13> *)(*(int *)(var_4 + -0x7fc4) + 0x44a8);
  (*var_14)();
  var_14 = var_14 + 0x28e6dc;
  pRVar19 = in_stack_ffffff90;
  uVar20 = local_4c;
  var_2 = (**(type_7 **)(*piVar13 + 0xac))(piVar13,var_15,uVar21);
  if (var_2 != 0) {
    return;
  }
  uVar7 = 0;
  if ((2 < var_15 + 0x80000003U) && (-1 < var_15)) {
    var_16._8_4_ = 0xfffffffa;
    var_16._12_4_ = uStack_c4;
    var_16._0_8_ = 0;
    got_entry_1_01._0_16_ = var_16 << 0x40;
    got_entry_1_01.addend_._0_4_ = piVar13;
    got_entry_1_01.addend_._4_4_ = uStack_e4;
    got_entry_2_01.u_.object = (type_9 *)(var_15 << 1);
    got_entry_2_01.u_.constant._4_4_ = uStack_dc;
    got_entry_2_01._8_4_ = in_stack_ffffff90;
    got_entry_2_01._12_4_ = local_4c;
    got_entry_2_01.addend_._0_4_ = var_14;
    got_entry_2_01.addend_._4_4_ = in_stack_ffffff14;
    uVar8 = var_7(pOVar11,got_entry_1_01,got_entry_2_01);
    uVar7 = uVar8;
    pRVar19 = in_stack_ffffff90;
    uVar20 = local_4c;
    (**(type_7 **)(*piVar13 + 0xb4))(piVar13,var_15,uVar21);
    if (*(type_7 **)(*piVar13 + 0x60) == *(type_7 **)(var_14 + -0x6260)) {
      if ((type_3)(piVar13[0xf] - piVar13[0xe] >> 2) <= var_17) goto LAB_001abd40;
      uVar21 = *(type_8 *)(piVar13[0xe] + var_17 * 4);
    }
    else {
      uVar21 = (**(type_7 **)(*piVar13 + 0x60))(piVar13,var_17);
    }
                    /* WARNING: Could not recover jumptable at 0x001abcd8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_7 **)(*piVar22 + 0x74))
              (piVar22,uVar21,in_stack_ffffff88,pOVar11,0,uVar8,in_stack_ffffff90,local_4c);
    return;
  }
  (**(type_7 **)(var_14 + -0x7e0c))
            (*(int *)(var_14 + -0x7e1c) + -0x4fe0,0xa5d,*(int *)(var_14 + -0x7e1c) + 0x5edc);
LAB_001abd40:
  piVar22 = (int *)&DAT_000005c8;
  var_18 = *(type_7 **)(var_14 + -0x7e0c);
  var_4 = *(int *)(var_14 + -0x7e1c) + 0x6e8c;
  pOVar11 = (var_1<64,var_13> *)(*(int *)(var_14 + -0x7fc4) + 0x44a8);
  (*var_18)();
  var_18 = var_18 + 0x28e474;
  uVar18 = 0;
  uVar21 = 0;
  var_2 = (**(type_7 **)(*piVar22 + 0xac))(piVar22,var_4,uVar7);
  if (var_2 == 0) {
    if ((var_4 + 0x80000003U < 3) || (var_4 < 0)) {
      var_14 = *(type_7 **)(var_18 + -0x7e0c);
      pOVar11 = (var_1<64,var_13> *)(*(int *)(var_18 + -0x7e1c) + -0x4fe0);
      (*var_14)(pOVar11,0xa50);
      got_entry_1.u_.object = (type_9 *)0xfffffffc;
      got_entry_1.u_.constant._4_4_ = uStack_1cc;
      got_entry_1._8_4_ = uStack_1c8;
      got_entry_1._12_4_ = uStack_1c4;
      got_entry_1.addend_._0_4_ = uVar21;
      got_entry_1.addend_._4_4_ = uVar18;
      got_entry_2.u_.object = (type_9 *)0xfffffffc;
      got_entry_2.u_.constant._4_4_ = uStack_1e4;
      got_entry_2._8_4_ = uStack_1e0;
      got_entry_2._12_4_ = uStack_1dc;
      got_entry_2.addend_._0_4_ = var_14 + 0x28e2b8;
      got_entry_2.addend_._4_4_ = in_stack_fffffe0c;
      var_7(pOVar11,got_entry_1,got_entry_2);
      return;
    }
    var_19._8_4_ = 0xfffffffa;
    var_19._12_4_ = uStack_154;
    var_19._0_8_ = 0;
    got_entry_1_00._0_16_ = var_19 << 0x40;
    got_entry_1_00.addend_._0_4_ = piVar22;
    got_entry_1_00.addend_._4_4_ = uStack_174;
    var_21._0_8_ = 0;
    var_21._8_8_ = var_20(var_4 << 1,uStack_16c) | 0x100000000;
    got_entry_2_00._0_16_ = var_21 << 0x40;
    got_entry_2_00.addend_._0_4_ = var_18;
    got_entry_2_00.addend_._4_4_ = in_stack_fffffe84;
    var_17 = var_7(pOVar11,got_entry_1_00,got_entry_2_00);
    uVar21 = 0;
    (**(type_7 **)(*piVar22 + 0xb4))(piVar22,var_4,uVar7,var_17,0,0);
    (*(pRVar19->super_Object)._vptr_Object[0x1b])
              (pRVar19,piVar22,0,uVar20,pOVar11,uVar21,0,var_17,0,0);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (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: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (ERROR (assignment_expression left: (identifier) right: (identifier))) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (false) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (number_literal) (number_literal) (identifier) (number_literal) (number_literal) (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (number_literal) (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal) (identifier) (number_literal) (number_literal)))))) (return_statement))))

void MASKED(undefined4 param_1,int *param_2,int param_3,uint param_4,undefined4 param_5,
                 int *param_6,undefined4 param_7)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 local_4c;
  undefined4 local_44;
  undefined4 local_2c;
  
  iVar1 = (**(code **)(*param_2 + 0xac))(param_2,param_3,param_5,param_4,0,0);
  if (iVar1 == 0) {
    if ((param_3 + 0x80000003U < 3) || (param_3 < 0)) {
      (*(code *)PTR_do_gold_unreachable_004323c4)
                (PTR_s_alize_xindex_004323b4 + -0x4fe0,0xa50,PTR_s_alize_xindex_004323b4 + 0x5ee8);
      return;
    }
    uVar2 = gold::Output_data_got<64,false>::add_got_entry_pair
                      (param_1,0xfffffffa,0,0,0xfffffffa,local_2c,0,0,param_2,local_4c,param_3 << 1,
                       local_44,0,0);
    (**(code **)(*param_2 + 0xb4))(param_2,param_3,param_5,uVar2,0,0);
    if (*(code **)(*param_2 + 0x60) == (code *)PTR_do_output_section_00433f70) {
      if ((uint)(param_2[0xf] - param_2[0xe] >> 2) <= param_4) {
        (*(code *)PTR_do_gold_unreachable_004323c4)
                  (PTR_LAB_0043220c + 0x44a8,0x5c8,PTR_s_alize_xindex_004323b4 + 0x6e8c);
        return;
      }
      uVar3 = *(undefined4 *)(param_2[0xe] + param_4 * 4);
    }
    else {
      uVar3 = (**(code **)(*param_2 + 0x60))(param_2,param_4);
    }
    (**(code **)(*param_6 + 0x74))(param_6,uVar3,param_7,param_1,0,uVar2,0,0);
  }
  return;
}

