
/* WARNING: Type propagation algorithm not settling */
/* 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: bool merge_got_with(Mips_output_data_got<32,_true> * this,
   Mips_got_info<32,_true> * from, Mips_relobj<32,_true> * object, Mips_got_info<32,_true> * to,
   Mips_output_data_got<32,_true> * this) */

bool __thiscall
anon_unknown.dwarf_29466b::Mips_output_data_got<32,_true>::merge_got_with
          (Mips_output_data_got<32,_true> *this,Mips_got_info<32,_true> *from,
          Mips_relobj<32,_true> *object,Mips_got_info<32,_true> *to,
          Mips_output_data_got<32,_true> *this_1)

{
  uchar uVar1;
  bool bVar2;
  undefined2 uVar3;
  pointer pGVar4;
  __node_base *p_Var5;
  uint uVar6;
  pointer pcVar7;
  int iVar8;
  byte *pbVar9;
  byte *pbVar10;
  uint uVar11;
  int iVar12;
  pointer pcVar13;
  anon_union_4_2_da8b752b_for_d aVar14;
  pointer *this_00;
  Mips_got_entry<32,_true> *entry_00;
  Output_section *pOVar15;
  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  a_Stack_40 [8];
  Mips_got_entry<32,_true> *entry2;
  Mips_got_entry<32,_true> *entry;
  Mips_got_info<32,_true> *local_30;
  Mips_relobj<32,_true> *local_2c;
  
  pcVar13 = *(pointer *)
             &(this->super_Output_data_got<32,_true>).super_Output_data_got_base.
              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4;
  pcVar7 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.
           super_Object.name_._M_dataplus._M_p +
           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.
                    super_Output_section_data_build.super_Output_section_data.super_Output_data.
                    field_0x4;
  iVar12 = *(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.
                          super_Relobj.super_Object.name_.field_2 + 4) +
           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.
                    super_Output_section_data_build.super_Output_section_data.super_Output_data.
                    data_size_;
  if (pcVar7 < pcVar13) {
    pcVar13 = pcVar7;
  }
  if ((this_1 == (Mips_output_data_got<32,_true> *)from) && (iVar12 != 0)) {
    iVar8 = *(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.
                     super_Output_section_data_build.super_Output_section_data.super_Output_data.
                     address_;
  }
  else {
    iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.
            super_Object.name_._M_string_length +
            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.
                     super_Output_section_data_build.super_Output_section_data.super_Output_data.
                     address_;
  }
  if ((pointer)0x3ff9 <
      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.
                     super_Relobj.super_Object._vptr_Object +
                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.
                     super_Output_section_data_build.super_Output_section_data.super_Output_data.
                     _vptr_Output_data + iVar8 + iVar12) {
    return false;
  }
  pOVar15 = (Output_section *)
            (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.
            output_sections_.
            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.
            _M_impl._M_finish;
  local_30 = to;
  if (pOVar15 != (Output_section *)0x0) {
    this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.
               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>
               ._M_impl._M_finish;
    local_2c = object;
LAB_000dbdbc:
    do {
      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;
      uVar11 = entry_00->symndx_;
      if (entry_00->tls_type_ == '\x02') {
        uVar6 = uVar11 + 0x40000;
      }
      else {
        if (uVar11 == 0xffffffff) {
          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;
          if (*pbVar9 == 0) goto LAB_000dbd64;
LAB_000dbdf0:
          uVar6 = 0x1505;
          do {
            pbVar10 = pbVar9 + 1;
            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;
            pbVar9 = pbVar10;
          } while (*pbVar10 != 0);
        }
        else {
          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;
          if (*pbVar9 != 0) goto LAB_000dbdf0;
LAB_000dbd64:
          uVar6 = 0x1505;
        }
        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;
      }
      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.
               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>
               ._M_impl._M_end_of_storage;
      if (pGVar4 == (pointer)0x0) {
        trap(7);
      }
      entry = entry_00;
      p_Var5 = std::
               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
               ::_M_find_before_node
                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);
      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {
        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);
        uVar6 = entry_00->symndx_;
        aVar14 = entry_00->d;
        uVar1 = entry_00->tls_type_;
        bVar2 = entry_00->is_section_symbol_;
        uVar3 = *(undefined2 *)&entry_00->field_0xe;
        uVar11 = entry_00->shndx_;
        entry2->addend_ = entry_00->addend_;
        entry2->symndx_ = uVar6;
        entry2->d = aVar14;
        entry2->tls_type_ = uVar1;
        entry2->is_section_symbol_ = bVar2;
        *(undefined2 *)&entry2->field_0xe = uVar3;
        entry2->shndx_ = uVar11;
        std::
        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
        ::
        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>
                  (a_Stack_40,this_00,&entry2);
        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);
        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;
        if (pOVar15 == (Output_section *)0x0) break;
        goto LAB_000dbdbc;
      }
      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;
    } while (pOVar15 != (Output_section *)0x0);
    pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj
             .super_Object.name_._M_dataplus._M_p +
             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.
                      super_Output_section_data_build.super_Output_section_data.super_Output_data.
                      field_0x4;
  }
  *(pointer *)
   &(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.
    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4 = pcVar7;
  local_30[3].global_got_symbols_._M_h._M_before_begin._M_nxt = (_Hash_node_base *)this_1;
  return true;
}



undefined4 FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  byte *pbVar4;
  byte *pbVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  int *piVar11;
  undefined1 auStack_40 [8];
  int *local_38;
  int *local_34;
  int local_30;
  int *local_2c;
  
  uVar2 = param_3[1] + param_5[1];
  uVar6 = *(uint *)(param_1 + 4);
  if (uVar2 < *(uint *)(param_1 + 4)) {
    uVar6 = uVar2;
  }
  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {
    iVar3 = *(int *)(param_1 + 8);
  }
  else {
    iVar3 = param_3[2] + param_5[2];
  }
  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {
    return 0;
  }
  piVar11 = (int *)param_3[0xf];
  local_30 = param_4;
  if (piVar11 != (int *)0x0) {
    local_2c = param_3;
LAB_000dbdbc:
    do {
      piVar10 = (int *)piVar11[1];
      uVar6 = piVar10[1];
      if (*(char *)(piVar10 + 3) == '\x02') {
        uVar2 = uVar6 + 0x40000;
      }
      else {
        if (uVar6 == 0xffffffff) {
          pbVar4 = *(byte **)piVar10[2];
          if (*pbVar4 == 0) goto LAB_000dbd64;
LAB_000dbdf0:
          uVar2 = 0x1505;
          do {
            pbVar5 = pbVar4 + 1;
            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;
            pbVar4 = pbVar5;
          } while (*pbVar5 != 0);
        }
        else {
          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];
          if (*pbVar4 != 0) goto LAB_000dbdf0;
LAB_000dbd64:
          uVar2 = 0x1505;
        }
        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;
      }
      if (param_5[0xe] == 0) {
        trap(7);
      }
      local_34 = piVar10;
      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);
      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {
        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);
        iVar9 = piVar10[1];
        iVar8 = piVar10[2];
        iVar7 = piVar10[3];
        iVar3 = piVar10[4];
        *local_38 = *piVar10;
        local_38[1] = iVar9;
        local_38[2] = iVar8;
        local_38[3] = iVar7;
        local_38[4] = iVar3;
        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);
        FUN_000d56e4(param_5,piVar10);
        piVar11 = (int *)*piVar11;
        if (piVar11 == (int *)0x0) break;
        goto LAB_000dbdbc;
      }
      piVar11 = (int *)*piVar11;
    } while (piVar11 != (int *)0x0);
    uVar2 = param_5[1] + local_2c[1];
  }
  param_5[1] = uVar2;
  *(int **)(local_30 + 500) = param_5;
  return 1;
}


lui gp,0x3f
addiu gp,gp,-0x2a14
addu gp,gp,t9
addiu sp,sp,-0x58
lw v1,0x4(a2)
lw t2,0x4(a0)
lw t0,0x10(a2)
sw s6,0x48(sp)
lw s6,0x68(sp)
sw gp,0x10(sp)
sw ra,0x54(sp)
sw s8,0x50(sp)
lw v0,0x4(s6)
lw t4,0x10(s6)
lw t3,0x0(s6)
addu v1,v1,v0
lw v0,0x0(a2)
addu t0,t0,t4
sw s7,0x4c(sp)
sltu t1,v1,t2
sw s5,0x44(sp)
movn t2,v1,t1
addu v0,v0,t3
addu v0,v0,t0
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s2,0x38(sp)
addu v0,v0,t2
sw s1,0x34(sp)
beq s6,a1,0x000dbed4
_sw s0,0x30(sp)
lw a0,0x8(a2)
lw a1,0x8(s6)
addu a0,a0,a1
addu v0,a0,v0
sltiu v0,v0,0x3ffa
bne v0,zero,0x000dbd1c
_lw ra,0x54(sp)
or v0,zero,zero
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lw s8,0x3c(a2)
sw a3,0x28(sp)
beq s8,zero,0x000dbe88
_sw a2,0x2c(sp)
lw s5,-0x77f4(gp)
addiu s2,s6,0x34
lw s4,-0x777c(gp)
addiu s0,sp,0x24
lw s3,-0x77f4(gp)
addiu s1,sp,0x20
addiu s5,s5,0x204
addiu s4,s4,-0x5e04
b 0x000dbdbc
_addiu s3,s3,0x56e4
lw a0,0x4(v0)
lb v0,0x0(a0)
bne v0,zero,0x000dbdf0
_li v0,0x1505
li v0,0x1505
lw a1,0x0(s7)
sll a1,a1,0x10
xor a1,a1,a2
xor a1,a1,v0
lw v0,0x38(s6)
or a3,a1,zero
or a2,s0,zero
or a0,s2,zero
teq v0,zero
divu a1,v0
or t9,s5,zero
bal 0x000d0204
_mfhi a1
beq v0,zero,0x000dbe14
_lw gp,0x10(sp)
lw v0,0x0(v0)
beq v0,zero,0x000dbe14
_nop
lw s8,0x0(s8)
beq s8,zero,0x000dbe7c
_lw v0,0x2c(sp)
lw s7,0x4(s8)
li v0,0x2
sw s7,0x24(sp)
lbu a0,0xc(s7)
beq a0,v0,0x000dbec8
_lw a2,0x4(s7)
li a0,-0x1
bne a2,a0,0x000dbd54
_lw v0,0x8(s7)
lw a0,0x0(v0)
lb v0,0x0(a0)
beq v0,zero,0x000dbd64
_li v0,0x1505
addiu a0,a0,0x1
lbu t1,-0x1(a0)
sll a1,v0,0x5
lb a3,0x0(a0)
addu v0,a1,v0
beq a3,zero,0x000dbd68
_addu v0,t1,v0
b 0x000dbdf4
_addiu a0,a0,0x1
lw t9,-0x7e98(gp)
jalr t9
_li a0,0x14
addiu a0,sp,0x18
lw t4,0x0(s7)
or a1,s2,zero
lw t3,0x4(s7)
or a2,s1,zero
lw t2,0x8(s7)
or t9,s4,zero
lw t1,0xc(s7)
lw a3,0x10(s7)
sw v0,0x20(sp)
sw t4,0x0(v0)
sw t3,0x4(v0)
sw t2,0x8(v0)
sw t1,0xc(v0)
bal 0x000da1fc
_sw a3,0x10(v0)
or a1,s7,zero
or t9,s3,zero
bal 0x000d56e4
_or a0,s6,zero
lw s8,0x0(s8)
bne s8,zero,0x000dbdbc
_lw v0,0x2c(sp)
lw v1,0x4(s6)
lw v0,0x4(v0)
addu v1,v1,v0
lw ra,0x54(sp)
li v0,0x1
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
sw v1,0x4(s6)
lw v1,0x28(sp)
sw s6,0x1f4(v1)
lw s6,0x48(sp)
jr ra
_addiu sp,sp,0x58
lui a1,0x4
b 0x000dbd78
_addu a1,a2,a1
beq t0,zero,0x000dbcd0
_nop
lw a0,0x8(a0)
b 0x000dbce0
_addu v0,v0,a0
(translation_unit "undefined4 FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}" type_identifier (function_declarator "FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)" identifier (parameter_list "(int param_1,int *param_2,int *param_3,int param_4,int *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined1 auStack_40 [8];" type_identifier (array_declarator "auStack_40 [8]" identifier [ number_literal ]) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "uVar2 = param_3[1] + param_5[1];" (assignment_expression "uVar2 = param_3[1] + param_5[1]" identifier = (binary_expression "param_3[1] + param_5[1]" (subscript_expression "param_3[1]" identifier [ number_literal ]) + (subscript_expression "param_5[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 4);" (assignment_expression "uVar6 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }" if (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 4))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 4)" identifier < (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar6 = uVar2;\n  }" { (expression_statement "uVar6 = uVar2;" (assignment_expression "uVar6 = uVar2" identifier = identifier) ;) })) (if_statement "if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }" if (parenthesized_expression "((param_5 == param_2) && (param_3[4] + param_5[4] != 0))" ( (binary_expression "(param_5 == param_2) && (param_3[4] + param_5[4] != 0)" (parenthesized_expression "(param_5 == param_2)" ( (binary_expression "param_5 == param_2" identifier == identifier) )) && (parenthesized_expression "(param_3[4] + param_5[4] != 0)" ( (binary_expression "param_3[4] + param_5[4] != 0" (binary_expression "param_3[4] + param_5[4]" (subscript_expression "param_3[4]" identifier [ number_literal ]) + (subscript_expression "param_5[4]" identifier [ number_literal ])) != number_literal) ))) )) (compound_statement "{\n    iVar3 = *(int *)(param_1 + 8);\n  }" { (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = param_3[2] + param_5[2];\n  }" else (compound_statement "{\n    iVar3 = param_3[2] + param_5[2];\n  }" { (expression_statement "iVar3 = param_3[2] + param_5[2];" (assignment_expression "iVar3 = param_3[2] + param_5[2]" identifier = (binary_expression "param_3[2] + param_5[2]" (subscript_expression "param_3[2]" identifier [ number_literal ]) + (subscript_expression "param_5[2]" identifier [ number_literal ]))) ;) }))) (if_statement "if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }" if (parenthesized_expression "(0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6)" ( (binary_expression "0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6" number_literal < (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6" (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4]" (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4]" (binary_expression "iVar3 + *param_3 + *param_5" (binary_expression "iVar3 + *param_3" identifier + (pointer_expression "*param_3" * identifier)) + (pointer_expression "*param_5" * identifier)) + (subscript_expression "param_3[4]" identifier [ number_literal ])) + (subscript_expression "param_5[4]" identifier [ number_literal ])) + identifier)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar11 = (int *)param_3[0xf];" (assignment_expression "piVar11 = (int *)param_3[0xf]" identifier = (cast_expression "(int *)param_3[0xf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" identifier = identifier) ;) (if_statement "if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }" { (expression_statement "local_2c = param_3;" (assignment_expression "local_2c = param_3" identifier = identifier) ;) (labeled_statement "LAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);" statement_identifier : (do_statement "do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);" do (compound_statement "{\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    }" { (expression_statement "piVar10 = (int *)piVar11[1];" (assignment_expression "piVar10 = (int *)piVar11[1]" identifier = (cast_expression "(int *)piVar11[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = piVar10[1];" (assignment_expression "uVar6 = piVar10[1]" identifier = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (if_statement "if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" if (parenthesized_expression "(*(char *)(piVar10 + 3) == '\x02')" ( (binary_expression "*(char *)(piVar10 + 3) == '\x02'" (pointer_expression "*(char *)(piVar10 + 3)" * (cast_expression "(char *)(piVar10 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10 + 3)" ( (binary_expression "piVar10 + 3" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = uVar6 + 0x40000;\n      }" { (expression_statement "uVar2 = uVar6 + 0x40000;" (assignment_expression "uVar2 = uVar6 + 0x40000" identifier = (binary_expression "uVar6 + 0x40000" identifier + number_literal)) ;) }) (else_clause "else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" else (compound_statement "{\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" { (if_statement "if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" if (parenthesized_expression "(uVar6 == 0xffffffff)" ( (binary_expression "uVar6 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }" { (expression_statement "pbVar4 = *(byte **)piVar10[2];" (assignment_expression "pbVar4 = *(byte **)piVar10[2]" identifier = (pointer_expression "*(byte **)piVar10[2]" * (cast_expression "(byte **)piVar10[2]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar10[2]" identifier [ number_literal ])))) ;) (if_statement "if (*pbVar4 == 0) goto LAB_000dbd64;" if (parenthesized_expression "(*pbVar4 == 0)" ( (binary_expression "*pbVar4 == 0" (pointer_expression "*pbVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_000dbd64;" goto statement_identifier ;)) (labeled_statement "LAB_000dbdf0:\n          uVar2 = 0x1505;" statement_identifier : (expression_statement "uVar2 = 0x1505;" (assignment_expression "uVar2 = 0x1505" identifier = number_literal) ;)) (do_statement "do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);" do (compound_statement "{\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          }" { (expression_statement "pbVar5 = pbVar4 + 1;" (assignment_expression "pbVar5 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)*pbVar4 + uVar2 * 0x21;" (assignment_expression "uVar2 = (uint)*pbVar4 + uVar2 * 0x21" identifier = (binary_expression "(uint)*pbVar4 + uVar2 * 0x21" (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier) + (binary_expression "uVar2 * 0x21" identifier * number_literal))) ;) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar5 != 0)" ( (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" * identifier) != number_literal) )) ;) }) (else_clause "else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" else (compound_statement "{\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" { (expression_statement "pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];" (assignment_expression "pbVar4 = (byte *)((undefined4 *)piVar10[2])[1]" identifier = (cast_expression "(byte *)((undefined4 *)piVar10[2])[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((undefined4 *)piVar10[2])[1]" (parenthesized_expression "((undefined4 *)piVar10[2])" ( (cast_expression "(undefined4 *)piVar10[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[2]" identifier [ number_literal ])) )) [ number_literal ]))) ;) (if_statement "if (*pbVar4 != 0) goto LAB_000dbdf0;" if (parenthesized_expression "(*pbVar4 != 0)" ( (binary_expression "*pbVar4 != 0" (pointer_expression "*pbVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_000dbdf0;" goto statement_identifier ;)) (labeled_statement "LAB_000dbd64:\n          uVar2 = 0x1505;" statement_identifier : (expression_statement "uVar2 = 0x1505;" (assignment_expression "uVar2 = 0x1505" identifier = number_literal) ;)) }))) (expression_statement "uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;" (assignment_expression "uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2" identifier = (binary_expression "*piVar10 << 0x10 ^ uVar6 ^ uVar2" (binary_expression "*piVar10 << 0x10 ^ uVar6" (binary_expression "*piVar10 << 0x10" (pointer_expression "*piVar10" * identifier) << number_literal) ^ identifier) ^ identifier)) ;) }))) (if_statement "if (param_5[0xe] == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(param_5[0xe] == 0)" ( (binary_expression "param_5[0xe] == 0" (subscript_expression "param_5[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_34 = piVar10;" (assignment_expression "local_34 = piVar10" identifier = identifier) ;) (expression_statement "piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);" (assignment_expression "piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" identifier = (cast_expression "(int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" identifier (argument_list "(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" ( (binary_expression "param_5 + 0xd" identifier + number_literal) , (binary_expression "uVar2 % (uint)param_5[0xe]" identifier % (cast_expression "(uint)param_5[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[0xe]" identifier [ number_literal ]))) , (pointer_expression "&local_34" & identifier) , identifier ))))) ;) (if_statement "if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }" if (parenthesized_expression "((piVar1 == (int *)0x0) || (*piVar1 == 0))" ( (binary_expression "(piVar1 == (int *)0x0) || (*piVar1 == 0)" (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) ))) )) (compound_statement "{\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }" { (expression_statement "local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "iVar9 = piVar10[1];" (assignment_expression "iVar9 = piVar10[1]" identifier = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar10[2];" (assignment_expression "iVar8 = piVar10[2]" identifier = (subscript_expression "piVar10[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar10[3];" (assignment_expression "iVar7 = piVar10[3]" identifier = (subscript_expression "piVar10[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar10[4];" (assignment_expression "iVar3 = piVar10[4]" identifier = (subscript_expression "piVar10[4]" identifier [ number_literal ])) ;) (expression_statement "*local_38 = *piVar10;" (assignment_expression "*local_38 = *piVar10" (pointer_expression "*local_38" * identifier) = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "local_38[1] = iVar9;" (assignment_expression "local_38[1] = iVar9" (subscript_expression "local_38[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[2] = iVar8;" (assignment_expression "local_38[2] = iVar8" (subscript_expression "local_38[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[3] = iVar7;" (assignment_expression "local_38[3] = iVar7" (subscript_expression "local_38[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[4] = iVar3;" (assignment_expression "local_38[4] = iVar3" (subscript_expression "local_38[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);" (call_expression "FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38)" identifier (argument_list "(auStack_40,param_5 + 0xd,&local_38)" ( identifier , (binary_expression "param_5 + 0xd" identifier + number_literal) , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "FUN_000d56e4(param_5,piVar10);" (call_expression "FUN_000d56e4(param_5,piVar10)" identifier (argument_list "(param_5,piVar10)" ( identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*piVar11;" (assignment_expression "piVar11 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (if_statement "if (piVar11 == (int *)0x0) break;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000dbdbc;" goto statement_identifier ;) })) (expression_statement "piVar11 = (int *)*piVar11;" (assignment_expression "piVar11 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "uVar2 = param_5[1] + local_2c[1];" (assignment_expression "uVar2 = param_5[1] + local_2c[1]" identifier = (binary_expression "param_5[1] + local_2c[1]" (subscript_expression "param_5[1]" identifier [ number_literal ]) + (subscript_expression "local_2c[1]" identifier [ number_literal ]))) ;) })) (expression_statement "param_5[1] = uVar2;" (assignment_expression "param_5[1] = uVar2" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int **)(local_30 + 500) = param_5;" (assignment_expression "*(int **)(local_30 + 500) = param_5" (pointer_expression "*(int **)(local_30 + 500)" * (cast_expression "(int **)(local_30 + 500)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_30 + 500)" ( (binary_expression "local_30 + 500" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* 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: bool merge_got_with(Mips_output_data_got<32,_true> * this,\n   Mips_got_info<32,_true> * from, Mips_relobj<32,_true> * object, Mips_got_info<32,_true> * to,\n   Mips_output_data_got<32,_true> * this) */\n\nbool __thiscall\nanon_unknown.dwarf_29466b::Mips_output_data_got<32,_true>::merge_got_with\n          (Mips_output_data_got<32,_true> *this,Mips_got_info<32,_true> *from,\n          Mips_relobj<32,_true> *object,Mips_got_info<32,_true> *to,\n          Mips_output_data_got<32,_true> *this_1)\n\n{\n  uchar uVar1;\n  bool bVar2;\n  undefined2 uVar3;\n  pointer pGVar4;\n  __node_base *p_Var5;\n  uint uVar6;\n  pointer pcVar7;\n  int iVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  uint uVar11;\n  int iVar12;\n  pointer pcVar13;\n  anon_union_4_2_da8b752b_for_d aVar14;\n  pointer *this_00;\n  Mips_got_entry<32,_true> *entry_00;\n  Output_section *pOVar15;\n  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8];\n  Mips_got_entry<32,_true> *entry2;\n  Mips_got_entry<32,_true> *entry;\n  Mips_got_info<32,_true> *local_30;\n  Mips_relobj<32,_true> *local_2c;\n  \n  pcVar13 = *(pointer *)\n             &(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4;\n  pcVar7 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4;\n  iVar12 = *(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4) +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_;\n  if (pcVar7 < pcVar13) {\n    pcVar13 = pcVar7;\n  }\n  if ((this_1 == (Mips_output_data_got<32,_true> *)from) && (iVar12 != 0)) {\n    iVar8 = *(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }\n  else {\n    iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }\n  if ((pointer)0x3ff9 <\n      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data + iVar8 + iVar12) {\n    return false;\n  }\n  pOVar15 = (Output_section *)\n            (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish;\n  local_30 = to;\n  if (pOVar15 != (Output_section *)0x0) {\n    this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_finish;\n    local_2c = object;\nLAB_000dbdbc:\n    do {\n      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;\n      uVar11 = entry_00->symndx_;\n      if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }\n      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;\n      if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }\n      entry = entry_00;\n      p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);\n      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n    } while (pOVar15 != (Output_section *)0x0);\n    pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p +\n             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4;\n  }\n  *(pointer *)\n   &(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4 = pcVar7;\n  local_30[3].global_got_symbols_._M_h._M_before_begin._M_nxt = (_Hash_node_base *)this_1;\n  return true;\n}\n\n" comment comment comment comment comment comment comment comment (declaration "bool __thiscall\nanon_unknown.dwarf_29466b::Mips_output_data_got<32,_true>::merge_got_with\n          (Mips_output_data_got<32,_true> *this,Mips_got_info<32,_true> *from,\n          Mips_relobj<32,_true> *object,Mips_got_info<32,_true> *to,\n          Mips_output_data_got<32,_true> *this_1)\n\n{\n  uchar uVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_29466b::" identifier . identifier : :) identifier (ERROR "<32" < number_literal) , (ERROR "_true>::merge_got_with\n          (Mips_output_data_got<32,_true> *this,Mips_got_info<32,_true> *from,\n          Mips_relobj<32,_true> *object,Mips_got_info<32,_true> *to,\n          Mips_output_data_got<32,_true> *this_1)\n\n{\n  uchar" identifier > : : (function_declarator "merge_got_with\n          (Mips_output_data_got<32,_true> *this,Mips_got_info<32,_true> *from,\n          Mips_relobj<32,_true> *object,Mips_got_info<32,_true> *to,\n          Mips_output_data_got<32,_true> *this_1)" identifier (parameter_list "(Mips_output_data_got<32,_true> *this,Mips_got_info<32,_true> *from,\n          Mips_relobj<32,_true> *object,Mips_got_info<32,_true> *to,\n          Mips_output_data_got<32,_true> *this_1)" ( (parameter_declaration "Mips_output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Mips_got_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *from" type_identifier (ERROR ">" >) (pointer_declarator "*from" * identifier)) , (parameter_declaration "Mips_relobj" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *object" type_identifier (ERROR ">" >) (pointer_declarator "*object" * identifier)) , (parameter_declaration "Mips_got_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *to" type_identifier (ERROR ">" >) (pointer_declarator "*to" * identifier)) , (parameter_declaration "Mips_output_data_got" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_true> *this_1" type_identifier (ERROR ">" >) (pointer_declarator "*this_1" * identifier)) ))) { identifier) identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined2 uVar3;" type_identifier identifier ;) (declaration "pointer pGVar4;" type_identifier identifier ;) (declaration "__node_base *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "pointer pcVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "pointer pcVar13;" type_identifier identifier ;) (declaration "anon_union_4_2_da8b752b_for_d aVar14;" type_identifier identifier ;) (declaration "pointer *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (expression_statement "Mips_got_entry<32,_true> *entry_00;" (update_expression "Mips_got_entry<32,_true> *entry_00" (binary_expression "Mips_got_entry<32,_true> *entry_00" (binary_expression "Mips_got_entry<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*entry_00" * identifier)) --) ;) (declaration "Output_section *pOVar15;" type_identifier (pointer_declarator "*pOVar15" * identifier) ;) (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*,_std" * (ERROR "," ,) identifier)) (ERROR "::allocator" : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier)) : : identifier : : identifier , type_identifier (parenthesized_declarator "(anonymous_namespace)" ( identifier )) : : identifier < number_literal , (binary_expression "_true>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_true>,_std" identifier > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8];" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8];" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8];" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8];" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8];" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  a_Stack_40 [8]" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  a_Stack_40 [8]" identifier , (binary_expression "_true>_>\n  a_Stack_40 [8]" (binary_expression "_true>_" identifier > identifier) > (subscript_expression "a_Stack_40 [8]" identifier [ number_literal ])))) ;))))) (expression_statement "Mips_got_entry<32,_true> *entry2;" (update_expression "Mips_got_entry<32,_true> *entry2" (binary_expression "Mips_got_entry<32,_true> *entry2" (binary_expression "Mips_got_entry<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*entry2" * identifier)) --) ;) (expression_statement "Mips_got_entry<32,_true> *entry;" (update_expression "Mips_got_entry<32,_true> *entry" (binary_expression "Mips_got_entry<32,_true> *entry" (binary_expression "Mips_got_entry<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*entry" * identifier)) --) ;) (expression_statement "Mips_got_info<32,_true> *local_30;" (update_expression "Mips_got_info<32,_true> *local_30" (binary_expression "Mips_got_info<32,_true> *local_30" (binary_expression "Mips_got_info<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*local_30" * identifier)) --) ;) (expression_statement "Mips_relobj<32,_true> *local_2c;" (update_expression "Mips_relobj<32,_true> *local_2c" (binary_expression "Mips_relobj<32,_true> *local_2c" (binary_expression "Mips_relobj<32" identifier < number_literal) (ERROR ",_true" , identifier) > (pointer_expression "*local_2c" * identifier)) --) ;) (expression_statement "pcVar13 = *(pointer *)\n             &(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4;" (assignment_expression "pcVar13 = *(pointer *)\n             &(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" identifier = (pointer_expression "*(pointer *)\n             &(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" * (cast_expression "(pointer *)\n             &(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" & (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n              super_Output_section_data_build" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this->super_Output_data_got<32,_true>)" ( (comma_expression "this->super_Output_data_got<32,_true" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) (expression_statement "pcVar7 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4;" (assignment_expression "pcVar7 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" identifier = (parenthesized_expression "(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" ( (comma_expression "object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" (binary_expression "object->super_Sized_relobj_file<32" (field_expression "object->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , (comma_expression "_true>).super_Sized_relobj<32,_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" (binary_expression "_true>).super_Sized_relobj<32" (field_expression "_true>).super_Sized_relobj" identifier (ERROR ">)" > )) . field_identifier) < number_literal) , (binary_expression "_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" (field_expression "_true>.super_Relobj.\n           super_Object.name_._M_dataplus._M_p" (field_expression "_true>.super_Relobj.\n           super_Object.name_._M_dataplus" (field_expression "_true>.super_Relobj.\n           super_Object.name_" (field_expression "_true>.super_Relobj.\n           super_Object" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + (pointer_expression "*(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" * (cast_expression "(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" & (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    field_0x4" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))))) ))) ;) (expression_statement "iVar12 = *(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4) +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_;" (assignment_expression "iVar12 = *(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4) +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_" identifier = (binary_expression "*(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4) +\n           *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_" (pointer_expression "*(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4)" * (cast_expression "(int *)((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4)" ( (comma_expression "(int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4" (binary_expression "(int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (cast_expression "(int)&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" & (field_expression "(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(object->super_Sized_relobj_file<32,_true>)" ( (comma_expression "object->super_Sized_relobj_file<32,_true" (binary_expression "object->super_Sized_relobj_file<32" (field_expression "object->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier))) < number_literal) , (binary_expression "_true>.\n                          super_Relobj.super_Object.name_.field_2 + 4" (field_expression "_true>.\n                          super_Relobj.super_Object.name_.field_2" (field_expression "_true>.\n                          super_Relobj.super_Object.name_" (field_expression "_true>.\n                          super_Relobj.super_Object" (field_expression "_true>.\n                          super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + number_literal)) )))) + (pointer_expression "*(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_" * (cast_expression "(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_" & (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                    data_size_" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build.super_Output_section_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                    super_Output_section_data_build" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))))) ;) (if_statement "if (pcVar7 < pcVar13) {\n    pcVar13 = pcVar7;\n  }" if (parenthesized_expression "(pcVar7 < pcVar13)" ( (binary_expression "pcVar7 < pcVar13" identifier < identifier) )) (compound_statement "{\n    pcVar13 = pcVar7;\n  }" { (expression_statement "pcVar13 = pcVar7;" (assignment_expression "pcVar13 = pcVar7" identifier = identifier) ;) })) (if_statement "if ((this_1 == (Mips_output_data_got<32,_true> *)from) && (iVar12 != 0)) {\n    iVar8 = *(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }\n  else {\n    iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }" if (parenthesized_expression "((this_1 == (Mips_output_data_got<32,_true> *)from) && (iVar12 != 0))" ( (parenthesized_expression "(this_1 == (Mips_output_data_got<32,_true> *)from) && (iVar12 != 0))" ( (binary_expression "this_1 == (Mips_output_data_got<32,_true> *)from) && (iVar12 != 0)" (binary_expression "this_1 == (Mips_output_data_got<32,_true> *)from)" identifier == (parenthesized_expression "(Mips_output_data_got<32,_true> *)from)" ( (comma_expression "Mips_output_data_got<32,_true> *)from" (binary_expression "Mips_output_data_got<32" identifier < number_literal) , (binary_expression "_true> *)from" identifier > (pointer_expression "*)from" * (ERROR ")" )) identifier))) ))) && (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) ))) )) )) (compound_statement "{\n    iVar8 = *(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }" { (expression_statement "iVar8 = *(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;" (assignment_expression "iVar8 = *(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" identifier = (pointer_expression "*(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" * (cast_expression "(int *)&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" & (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build" (field_expression "(this->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this->super_Output_data_got<32,_true>)" ( (comma_expression "this->super_Output_data_got<32,_true" (binary_expression "this->super_Output_data_got<32" (field_expression "this->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))))) ;) }) (else_clause "else {\n    iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }" else (compound_statement "{\n    iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;\n  }" { (expression_statement "iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_;" (comma_expression "iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" (assignment_expression "iVar8 = (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" identifier = (binary_expression "(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (field_expression "(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(object->super_Sized_relobj_file<32,_true>)" ( (comma_expression "object->super_Sized_relobj_file<32,_true" (binary_expression "object->super_Sized_relobj_file<32" (field_expression "object->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (binary_expression "_true>.super_Relobj.\n            super_Object.name_._M_string_length +\n            *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" (field_expression "_true>.super_Relobj.\n            super_Object.name_._M_string_length" (field_expression "_true>.super_Relobj.\n            super_Object.name_" (field_expression "_true>.super_Relobj.\n            super_Object" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + (pointer_expression "*(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" * (cast_expression "(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" & (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     address_" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))))) ;) }))) (if_statement "if ((pointer)0x3ff9 <\n      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data + iVar8 + iVar12) {\n    return false;\n  }" if (parenthesized_expression "((pointer)0x3ff9 <\n      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data + iVar8 + iVar12)" ( (comma_expression "(pointer)0x3ff9 <\n      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data + iVar8 + iVar12" (binary_expression "(pointer)0x3ff9 <\n      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (binary_expression "(pointer)0x3ff9 <\n      pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (cast_expression "(pointer)0x3ff9" ( (type_descriptor "pointer" type_identifier) ) number_literal) < (binary_expression "pcVar13 + (int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" identifier + (cast_expression "(int)(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(object->super_Sized_relobj_file<32,_true>)" ( (comma_expression "object->super_Sized_relobj_file<32,_true" (binary_expression "object->super_Sized_relobj_file<32" (field_expression "object->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier)))) < number_literal) , (binary_expression "_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data + iVar8 + iVar12" (binary_expression "_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data + iVar8" (binary_expression "_true>.\n                     super_Relobj.super_Object._vptr_Object +\n                (int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data" (field_expression "_true>.\n                     super_Relobj.super_Object._vptr_Object" (field_expression "_true>.\n                     super_Relobj.super_Object" (field_expression "_true>.\n                     super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) + (cast_expression "(int)(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data" ( (type_descriptor "int" primitive_type) ) (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                     _vptr_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build.super_Output_section_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                     super_Output_section_data_build" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier))) + identifier) + identifier)) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "pOVar15 = (Output_section *)\n            (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish;\n  local_30 = to;" (assignment_expression "pOVar15 = (Output_section *)\n            (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish;\n  local_30 = to" identifier = (cast_expression "(Output_section *)\n            (object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish;\n  local_30 = to" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish;\n  local_30 = to" ( (ERROR "object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>.\n            _M_impl._M_finish;" (comma_expression "object->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold" (binary_expression "object->super_Sized_relobj_file<32" (field_expression "object->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , (comma_expression "_true>).super_Sized_relobj<32,_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold" (binary_expression "_true>).super_Sized_relobj<32" (field_expression "_true>).super_Sized_relobj" identifier (ERROR ">)" > )) . field_identifier) < number_literal) , (binary_expression "_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base<gold" (field_expression "_true>.super_Relobj.\n            output_sections_.\n            super__Vector_base" (field_expression "_true>.super_Relobj.\n            output_sections_" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) < identifier))) : : identifier * , identifier : : (binary_expression "allocator<gold" identifier < identifier) : : (field_expression "Output_section*>_>.\n            _M_impl._M_finish" (field_expression "Output_section*>_>.\n            _M_impl" (binary_expression "Output_section*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (assignment_expression "local_30 = to" identifier = identifier) )))) ;) (if_statement "if (pOVar15 != (Output_section *)0x0) {\n    this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_finish;\n    local_2c = object;\nLAB_000dbdbc:\n    do {\n      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;\n      uVar11 = entry_00->symndx_;\n      if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }\n      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;\n      if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }\n      entry = entry_00;\n      p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);\n      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n    } while (pOVar15 != (Output_section *)0x0);\n    pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p +\n             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4;\n  }" if (parenthesized_expression "(pOVar15 != (Output_section *)0x0)" ( (binary_expression "pOVar15 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_finish;\n    local_2c = object;\nLAB_000dbdbc:\n    do {\n      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;\n      uVar11 = entry_00->symndx_;\n      if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }\n      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;\n      if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }\n      entry = entry_00;\n      p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);\n      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n    } while (pOVar15 != (Output_section *)0x0);\n    pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p +\n             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4;\n  }" { (ERROR "this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::" (comma_expression "this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std" (binary_expression "this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32" (assignment_expression "this_00 = &(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold" identifier = (binary_expression "&(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold" (pointer_expression "&(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base" & (field_expression "(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base" (field_expression "(this_1->super_Output_data_got<32,_true>).entries_" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier)) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_true>::Got_entry,_std" (binary_expression "_true>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_finish;" (comma_expression "Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_finish" (binary_expression "Output_data_got<32" identifier < number_literal) , (field_expression "_true>::Got_entry>_>\n               ._M_impl._M_finish" (field_expression "_true>::Got_entry>_>\n               ._M_impl" (binary_expression "_true>::Got_entry>_" (binary_expression "_true>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (expression_statement "local_2c = object;" (assignment_expression "local_2c = object" identifier = identifier) ;) (labeled_statement "LAB_000dbdbc:\n    do {\n      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;\n      uVar11 = entry_00->symndx_;\n      if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }\n      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;\n      if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }\n      entry = entry_00;\n      p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);\n      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n    } while (pOVar15 != (Output_section *)0x0);" statement_identifier : (do_statement "do {\n      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;\n      uVar11 = entry_00->symndx_;\n      if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }\n      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;\n      if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }\n      entry = entry_00;\n      p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);\n      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n    } while (pOVar15 != (Output_section *)0x0);" do (compound_statement "{\n      entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;\n      uVar11 = entry_00->symndx_;\n      if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }\n      pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;\n      if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }\n      entry = entry_00;\n      p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);\n      if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n    }" { (expression_statement "entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4;" (assignment_expression "entry_00 = *(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4" identifier = (binary_expression "*(Mips_got_entry<32,_true> **)&(pOVar15->super_Output_data).field_0x4" (pointer_expression "*(Mips_got_entry<32,_true> **)" * (parenthesized_expression "(Mips_got_entry<32,_true> **)" ( (comma_expression "Mips_got_entry<32,_true> **" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true> **" identifier > (pointer_expression "**" * (pointer_expression "*" * identifier)))) ))) & (field_expression "(pOVar15->super_Output_data).field_0x4" (parenthesized_expression "(pOVar15->super_Output_data)" ( (field_expression "pOVar15->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "uVar11 = entry_00->symndx_;" (assignment_expression "uVar11 = entry_00->symndx_" identifier = (field_expression "entry_00->symndx_" identifier -> field_identifier)) ;) (if_statement "if (entry_00->tls_type_ == '\x02') {\n        uVar6 = uVar11 + 0x40000;\n      }\n      else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }" if (parenthesized_expression "(entry_00->tls_type_ == '\x02')" ( (binary_expression "entry_00->tls_type_ == '\x02'" (field_expression "entry_00->tls_type_" identifier -> field_identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        uVar6 = uVar11 + 0x40000;\n      }" { (expression_statement "uVar6 = uVar11 + 0x40000;" (assignment_expression "uVar6 = uVar11 + 0x40000" identifier = (binary_expression "uVar11 + 0x40000" identifier + number_literal)) ;) }) (else_clause "else {\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }" else (compound_statement "{\n        if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }\n        uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;\n      }" { (if_statement "if (uVar11 == 0xffffffff) {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }\n        else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }" if (parenthesized_expression "(uVar11 == 0xffffffff)" ( (binary_expression "uVar11 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n          if (*pbVar9 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar6 = 0x1505;\n          do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);\n        }" { (expression_statement "pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;" (assignment_expression "pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_" identifier = (cast_expression "(byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.name_" (field_expression "(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol" (parenthesized_expression "(((entry_00->d).sym)->super_Sized_symbol<32>)" ( (binary_expression "((entry_00->d).sym)->super_Sized_symbol<32>" (binary_expression "((entry_00->d).sym)->super_Sized_symbol<32" (field_expression "((entry_00->d).sym)->super_Sized_symbol" (parenthesized_expression "((entry_00->d).sym)" ( (field_expression "(entry_00->d).sym" (parenthesized_expression "(entry_00->d)" ( (field_expression "entry_00->d" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) < number_literal) > identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (*pbVar9 == 0) goto LAB_000dbd64;" if (parenthesized_expression "(*pbVar9 == 0)" ( (binary_expression "*pbVar9 == 0" (pointer_expression "*pbVar9" * identifier) == number_literal) )) (goto_statement "goto LAB_000dbd64;" goto statement_identifier ;)) (labeled_statement "LAB_000dbdf0:\n          uVar6 = 0x1505;" statement_identifier : (expression_statement "uVar6 = 0x1505;" (assignment_expression "uVar6 = 0x1505" identifier = number_literal) ;)) (do_statement "do {\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          } while (*pbVar10 != 0);" do (compound_statement "{\n            pbVar10 = pbVar9 + 1;\n            uVar6 = (uint)*pbVar9 + uVar6 * 0x21;\n            pbVar9 = pbVar10;\n          }" { (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = (uint)*pbVar9 + uVar6 * 0x21;" (assignment_expression "uVar6 = (uint)*pbVar9 + uVar6 * 0x21" identifier = (binary_expression "(uint)*pbVar9 + uVar6 * 0x21" (binary_expression "(uint)*pbVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier) + (binary_expression "uVar6 * 0x21" identifier * number_literal))) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar10 != 0)" ( (binary_expression "*pbVar10 != 0" (pointer_expression "*pbVar10" * identifier) != number_literal) )) ;) }) (else_clause "else {\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }" else (compound_statement "{\n          pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n          if (*pbVar9 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar6 = 0x1505;\n        }" { (expression_statement "pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;" (assignment_expression "pbVar9 = (byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_" identifier = (cast_expression "(byte *)(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol.version_" (field_expression "(((entry_00->d).sym)->super_Sized_symbol<32>).super_Symbol" (parenthesized_expression "(((entry_00->d).sym)->super_Sized_symbol<32>)" ( (binary_expression "((entry_00->d).sym)->super_Sized_symbol<32>" (binary_expression "((entry_00->d).sym)->super_Sized_symbol<32" (field_expression "((entry_00->d).sym)->super_Sized_symbol" (parenthesized_expression "((entry_00->d).sym)" ( (field_expression "(entry_00->d).sym" (parenthesized_expression "(entry_00->d)" ( (field_expression "entry_00->d" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) < number_literal) > identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (*pbVar9 != 0) goto LAB_000dbdf0;" if (parenthesized_expression "(*pbVar9 != 0)" ( (binary_expression "*pbVar9 != 0" (pointer_expression "*pbVar9" * identifier) != number_literal) )) (goto_statement "goto LAB_000dbdf0;" goto statement_identifier ;)) (labeled_statement "LAB_000dbd64:\n          uVar6 = 0x1505;" statement_identifier : (expression_statement "uVar6 = 0x1505;" (assignment_expression "uVar6 = 0x1505" identifier = number_literal) ;)) }))) (expression_statement "uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6;" (assignment_expression "uVar6 = entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6" identifier = (binary_expression "entry_00->addend_ << 0x10 ^ uVar11 ^ uVar6" (binary_expression "entry_00->addend_ << 0x10 ^ uVar11" (binary_expression "entry_00->addend_ << 0x10" (field_expression "entry_00->addend_" identifier -> field_identifier) << number_literal) ^ identifier) ^ identifier)) ;) }))) (ERROR "pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std::allocator<gold::" (comma_expression "pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32,_true>::Got_entry,_std" (binary_expression "pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold::Output_data_got<32" (assignment_expression "pGVar4 = (this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold" identifier = (binary_expression "(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base<gold" (field_expression "(this_1->super_Output_data_got<32,_true>).entries_.\n               super__Vector_base" (field_expression "(this_1->super_Output_data_got<32,_true>).entries_" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_data_got" : : identifier) < number_literal) , (comma_expression "_true>::Got_entry,_std" (binary_expression "_true>::Got_entry" identifier > (ERROR "::" : :) identifier) , identifier)) : : (binary_expression "allocator<gold" identifier < identifier) : :) (expression_statement "Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage;" (comma_expression "Output_data_got<32,_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage" (binary_expression "Output_data_got<32" identifier < number_literal) , (field_expression "_true>::Got_entry>_>\n               ._M_impl._M_end_of_storage" (field_expression "_true>::Got_entry>_>\n               ._M_impl" (binary_expression "_true>::Got_entry>_" (binary_expression "_true>::Got_entry" identifier > (ERROR "::" : :) identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier)) ;) (if_statement "if (pGVar4 == (pointer)0x0) {\n        trap(7);\n      }" if (parenthesized_expression "(pGVar4 == (pointer)0x0)" ( (binary_expression "pGVar4 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "entry = entry_00;" (assignment_expression "entry = entry_00" identifier = identifier) ;) (ERROR "p_Var5 = std::\n               _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::" (assignment_expression "p_Var5 = std" identifier = identifier) : : (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_true>*,_(anonymous_namespace)" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_true>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_true>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : :) (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_true>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_true>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_true>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_true>,_std" identifier > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6)" identifier , (binary_expression "_true>_>\n               ::_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_find_before_node\n                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6)" identifier (argument_list "((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6)" ( (parenthesized_expression "(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6)" ( (ERROR "_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Symbol_location,_gold" identifier , identifier) : : (comma_expression "Symbol_location,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_std" identifier > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<gold" identifier < identifier) : : (binary_expression "Symbol_location>,_gold" identifier > (ERROR "," ,) identifier) : : (comma_expression "Symbol_location_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6" identifier , (comma_expression "_true>_>\n                           *)this_00,uVar6 % (uint)pGVar4,&entry,uVar6" (binary_expression "_true>_>\n                           *)this_00" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)this_00" * (ERROR ")" )) identifier)) , (comma_expression "uVar6 % (uint)pGVar4,&entry,uVar6" (binary_expression "uVar6 % (uint)pGVar4" identifier % (cast_expression "(uint)pGVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) , (comma_expression "&entry,uVar6" (pointer_expression "&entry" & identifier) , identifier))))) )) )))))) ;)))))) (if_statement "if ((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)) {\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }" if (parenthesized_expression "((p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var5 == (__node_base *)0x0) || (p_Var5->_M_nxt == (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var5 == (__node_base *)0x0)" ( (binary_expression "p_Var5 == (__node_base *)0x0" identifier == (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var5->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var5->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var5->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        uVar6 = entry_00->symndx_;\n        aVar14 = entry_00->d;\n        uVar1 = entry_00->tls_type_;\n        bVar2 = entry_00->is_section_symbol_;\n        uVar3 = *(undefined2 *)&entry_00->field_0xe;\n        uVar11 = entry_00->shndx_;\n        entry2->addend_ = entry_00->addend_;\n        entry2->symndx_ = uVar6;\n        entry2->d = aVar14;\n        entry2->tls_type_ = uVar1;\n        entry2->is_section_symbol_ = bVar2;\n        *(undefined2 *)&entry2->field_0xe = uVar3;\n        entry2->shndx_ = uVar11;\n        std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);\n        Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);\n        pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;\n        if (pOVar15 == (Output_section *)0x0) break;\n        goto LAB_000dbdbc;\n      }" { (expression_statement "entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "entry2 = (Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (call_expression "(Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (call_expression "(Mips_got_entry<32,_true> *)(*(code *)PTR_operator_new_004c13a8)" (parenthesized_expression "(Mips_got_entry<32,_true> *)" ( (comma_expression "Mips_got_entry<32,_true> *" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true> *" identifier > (pointer_expression "*" * identifier))) )) (argument_list "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) (argument_list "(0x14)" ( number_literal )))) ;) (expression_statement "uVar6 = entry_00->symndx_;" (assignment_expression "uVar6 = entry_00->symndx_" identifier = (field_expression "entry_00->symndx_" identifier -> field_identifier)) ;) (expression_statement "aVar14 = entry_00->d;" (assignment_expression "aVar14 = entry_00->d" identifier = (field_expression "entry_00->d" identifier -> field_identifier)) ;) (expression_statement "uVar1 = entry_00->tls_type_;" (assignment_expression "uVar1 = entry_00->tls_type_" identifier = (field_expression "entry_00->tls_type_" identifier -> field_identifier)) ;) (expression_statement "bVar2 = entry_00->is_section_symbol_;" (assignment_expression "bVar2 = entry_00->is_section_symbol_" identifier = (field_expression "entry_00->is_section_symbol_" identifier -> field_identifier)) ;) (expression_statement "uVar3 = *(undefined2 *)&entry_00->field_0xe;" (assignment_expression "uVar3 = *(undefined2 *)&entry_00->field_0xe" identifier = (pointer_expression "*(undefined2 *)&entry_00->field_0xe" * (cast_expression "(undefined2 *)&entry_00->field_0xe" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry_00->field_0xe" & (field_expression "entry_00->field_0xe" identifier -> field_identifier))))) ;) (expression_statement "uVar11 = entry_00->shndx_;" (assignment_expression "uVar11 = entry_00->shndx_" identifier = (field_expression "entry_00->shndx_" identifier -> field_identifier)) ;) (expression_statement "entry2->addend_ = entry_00->addend_;" (assignment_expression "entry2->addend_ = entry_00->addend_" (field_expression "entry2->addend_" identifier -> field_identifier) = (field_expression "entry_00->addend_" identifier -> field_identifier)) ;) (expression_statement "entry2->symndx_ = uVar6;" (assignment_expression "entry2->symndx_ = uVar6" (field_expression "entry2->symndx_" identifier -> field_identifier) = identifier) ;) (expression_statement "entry2->d = aVar14;" (assignment_expression "entry2->d = aVar14" (field_expression "entry2->d" identifier -> field_identifier) = identifier) ;) (expression_statement "entry2->tls_type_ = uVar1;" (assignment_expression "entry2->tls_type_ = uVar1" (field_expression "entry2->tls_type_" identifier -> field_identifier) = identifier) ;) (expression_statement "entry2->is_section_symbol_ = bVar2;" (assignment_expression "entry2->is_section_symbol_ = bVar2" (field_expression "entry2->is_section_symbol_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined2 *)&entry2->field_0xe = uVar3;" (assignment_expression "*(undefined2 *)&entry2->field_0xe = uVar3" (pointer_expression "*(undefined2 *)&entry2->field_0xe" * (cast_expression "(undefined2 *)&entry2->field_0xe" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry2->field_0xe" & (field_expression "entry2->field_0xe" identifier -> field_identifier)))) = identifier) ;) (expression_statement "entry2->shndx_ = uVar11;" (assignment_expression "entry2->shndx_ = uVar11" (field_expression "entry2->shndx_" identifier -> field_identifier) = identifier) ;) (labeled_statement "std::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::\n        _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_true>*,_(anonymous_namespace)::Mips_got_entry<32,_true>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_true>*>,_std:" : : (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_true>*,_(anonymous_namespace)" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_true>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_true>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) :) : (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_true>,_(anonymous_namespace)::Mips_got_entry_hash<32,_true>,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_true>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_true>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_true>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_true>,_std" identifier > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)::Mips_got_entry<32,_true>*_const&,_std:" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n        ::\n        _M_insert<(anonymous_namespace)" identifier , (binary_expression "_true>_>\n        ::\n        _M_insert<(anonymous_namespace)" (binary_expression "_true>_>\n        ::\n        _M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry<32,_true>*_const&,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*_const&,_std" (binary_expression "_true>*_const" identifier > (pointer_expression "*_const" * identifier)) & (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" statement_identifier (ERROR "::_Hash_node<(anonymous_namespace):" : : (binary_expression "_Hash_node<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2);" (comma_expression "Mips_got_entry<32,_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2)" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_true>*,_true>_>_>_>\n                  (a_Stack_40,this_00,&entry2)" (binary_expression "_true>*,_true>_>_>_" (binary_expression "_true>*,_true>_>_" (binary_expression "_true>*,_true>_" (binary_expression "_true>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) > identifier) > identifier) > identifier) > (parenthesized_expression "(a_Stack_40,this_00,&entry2)" ( (comma_expression "a_Stack_40,this_00,&entry2" identifier , (comma_expression "this_00,&entry2" identifier , (pointer_expression "&entry2" & identifier))) )))) ;))))))))) (expression_statement "Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00);" (comma_expression "Mips_got_info<32,_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00)" (binary_expression "Mips_got_info<32" identifier < number_literal) , (binary_expression "_true>::count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00)" identifier > (ERROR "::" : :) (call_expression "count_got_entry((Mips_got_info<32,_true> *)this_1,entry_00)" identifier (argument_list "((Mips_got_info<32,_true> *)this_1,entry_00)" ( (parenthesized_expression "(Mips_got_info<32,_true> *)this_1,entry_00)" ( (comma_expression "Mips_got_info<32,_true> *)this_1,entry_00" (binary_expression "Mips_got_info<32" identifier < number_literal) , (comma_expression "_true> *)this_1,entry_00" (binary_expression "_true> *)this_1" identifier > (pointer_expression "*)this_1" * (ERROR ")" )) identifier)) , identifier)) )) ))))) ;) (expression_statement "pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;" (assignment_expression "pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data" identifier = (cast_expression "(Output_section *)(pOVar15->super_Output_data)._vptr_Output_data" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pOVar15->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar15->super_Output_data)" ( (field_expression "pOVar15->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (pOVar15 == (Output_section *)0x0) break;" if (parenthesized_expression "(pOVar15 == (Output_section *)0x0)" ( (binary_expression "pOVar15 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000dbdbc;" goto statement_identifier ;) })) (expression_statement "pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data;" (assignment_expression "pOVar15 = (Output_section *)(pOVar15->super_Output_data)._vptr_Output_data" identifier = (cast_expression "(Output_section *)(pOVar15->super_Output_data)._vptr_Output_data" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pOVar15->super_Output_data)._vptr_Output_data" (parenthesized_expression "(pOVar15->super_Output_data)" ( (field_expression "pOVar15->super_Output_data" identifier -> field_identifier) )) . field_identifier))) ;) }) while (parenthesized_expression "(pOVar15 != (Output_section *)0x0)" ( (binary_expression "pOVar15 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p +\n             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4;" (comma_expression "pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32,_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p +\n             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4" (assignment_expression "pcVar7 = (local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" identifier = (binary_expression "(local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj<32" (field_expression "(local_2c->super_Sized_relobj_file<32,_true>).super_Sized_relobj" (parenthesized_expression "(local_2c->super_Sized_relobj_file<32,_true>)" ( (comma_expression "local_2c->super_Sized_relobj_file<32,_true" (binary_expression "local_2c->super_Sized_relobj_file<32" (field_expression "local_2c->super_Sized_relobj_file" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) < number_literal)) , (binary_expression "_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p +\n             *(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4" (field_expression "_true>.super_Relobj\n             .super_Object.name_._M_dataplus._M_p" (field_expression "_true>.super_Relobj\n             .super_Object.name_._M_dataplus" (field_expression "_true>.super_Relobj\n             .super_Object.name_" (field_expression "_true>.super_Relobj\n             .super_Object" (field_expression "_true>.super_Relobj" identifier (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier) + (pointer_expression "*(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4" * (cast_expression "(int *)&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4" & (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data.\n                      field_0x4" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build.super_Output_section_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n                      super_Output_section_data_build" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))))) ;) })) (expression_statement "*(pointer *)\n   &(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4 = pcVar7;" (assignment_expression "*(pointer *)\n   &(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4 = pcVar7" (pointer_expression "*(pointer *)\n   &(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" * (cast_expression "(pointer *)\n   &(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" & (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data.super_Output_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build.super_Output_section_data" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base.\n    super_Output_section_data_build" (field_expression "(this_1->super_Output_data_got<32,_true>).super_Output_data_got_base" (parenthesized_expression "(this_1->super_Output_data_got<32,_true>)" ( (comma_expression "this_1->super_Output_data_got<32,_true" (binary_expression "this_1->super_Output_data_got<32" (field_expression "this_1->super_Output_data_got" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "local_30[3].global_got_symbols_._M_h._M_before_begin._M_nxt = (_Hash_node_base *)this_1;" (assignment_expression "local_30[3].global_got_symbols_._M_h._M_before_begin._M_nxt = (_Hash_node_base *)this_1" (field_expression "local_30[3].global_got_symbols_._M_h._M_before_begin._M_nxt" (field_expression "local_30[3].global_got_symbols_._M_h._M_before_begin" (field_expression "local_30[3].global_got_symbols_._M_h" (field_expression "local_30[3].global_got_symbols_" (subscript_expression "local_30[3]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)this_1" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return true;" return true ;) (ERROR "}" }))
(translation_unit "undefined4 FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}" type_identifier (function_declarator "FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)" identifier (parameter_list "(int param_1,int *param_2,int *param_3,int param_4,int *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined1 auStack_40 [8];" type_identifier (array_declarator "auStack_40 [8]" identifier [ number_literal ]) ;) (declaration "int *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "uVar2 = param_3[1] + param_5[1];" (assignment_expression "uVar2 = param_3[1] + param_5[1]" identifier = (binary_expression "param_3[1] + param_5[1]" (subscript_expression "param_3[1]" identifier [ number_literal ]) + (subscript_expression "param_5[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = *(uint *)(param_1 + 4);" (assignment_expression "uVar6 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }" if (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 4))" ( (binary_expression "uVar2 < *(uint *)(param_1 + 4)" identifier < (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    uVar6 = uVar2;\n  }" { (expression_statement "uVar6 = uVar2;" (assignment_expression "uVar6 = uVar2" identifier = identifier) ;) })) (if_statement "if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }" if (parenthesized_expression "((param_5 == param_2) && (param_3[4] + param_5[4] != 0))" ( (binary_expression "(param_5 == param_2) && (param_3[4] + param_5[4] != 0)" (parenthesized_expression "(param_5 == param_2)" ( (binary_expression "param_5 == param_2" identifier == identifier) )) && (parenthesized_expression "(param_3[4] + param_5[4] != 0)" ( (binary_expression "param_3[4] + param_5[4] != 0" (binary_expression "param_3[4] + param_5[4]" (subscript_expression "param_3[4]" identifier [ number_literal ]) + (subscript_expression "param_5[4]" identifier [ number_literal ])) != number_literal) ))) )) (compound_statement "{\n    iVar3 = *(int *)(param_1 + 8);\n  }" { (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    iVar3 = param_3[2] + param_5[2];\n  }" else (compound_statement "{\n    iVar3 = param_3[2] + param_5[2];\n  }" { (expression_statement "iVar3 = param_3[2] + param_5[2];" (assignment_expression "iVar3 = param_3[2] + param_5[2]" identifier = (binary_expression "param_3[2] + param_5[2]" (subscript_expression "param_3[2]" identifier [ number_literal ]) + (subscript_expression "param_5[2]" identifier [ number_literal ]))) ;) }))) (if_statement "if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }" if (parenthesized_expression "(0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6)" ( (binary_expression "0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6" number_literal < (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6" (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4]" (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4]" (binary_expression "iVar3 + *param_3 + *param_5" (binary_expression "iVar3 + *param_3" identifier + (pointer_expression "*param_3" * identifier)) + (pointer_expression "*param_5" * identifier)) + (subscript_expression "param_3[4]" identifier [ number_literal ])) + (subscript_expression "param_5[4]" identifier [ number_literal ])) + identifier)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "piVar11 = (int *)param_3[0xf];" (assignment_expression "piVar11 = (int *)param_3[0xf]" identifier = (cast_expression "(int *)param_3[0xf]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" identifier = identifier) ;) (if_statement "if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }" { (expression_statement "local_2c = param_3;" (assignment_expression "local_2c = param_3" identifier = identifier) ;) (labeled_statement "LAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);" statement_identifier : (do_statement "do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);" do (compound_statement "{\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    }" { (expression_statement "piVar10 = (int *)piVar11[1];" (assignment_expression "piVar10 = (int *)piVar11[1]" identifier = (cast_expression "(int *)piVar11[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar11[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = piVar10[1];" (assignment_expression "uVar6 = piVar10[1]" identifier = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (if_statement "if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" if (parenthesized_expression "(*(char *)(piVar10 + 3) == '\x02')" ( (binary_expression "*(char *)(piVar10 + 3) == '\x02'" (pointer_expression "*(char *)(piVar10 + 3)" * (cast_expression "(char *)(piVar10 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar10 + 3)" ( (binary_expression "piVar10 + 3" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        uVar2 = uVar6 + 0x40000;\n      }" { (expression_statement "uVar2 = uVar6 + 0x40000;" (assignment_expression "uVar2 = uVar6 + 0x40000" identifier = (binary_expression "uVar6 + 0x40000" identifier + number_literal)) ;) }) (else_clause "else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" else (compound_statement "{\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" { (if_statement "if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" if (parenthesized_expression "(uVar6 == 0xffffffff)" ( (binary_expression "uVar6 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }" { (expression_statement "pbVar4 = *(byte **)piVar10[2];" (assignment_expression "pbVar4 = *(byte **)piVar10[2]" identifier = (pointer_expression "*(byte **)piVar10[2]" * (cast_expression "(byte **)piVar10[2]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "piVar10[2]" identifier [ number_literal ])))) ;) (if_statement "if (*pbVar4 == 0) goto LAB_000dbd64;" if (parenthesized_expression "(*pbVar4 == 0)" ( (binary_expression "*pbVar4 == 0" (pointer_expression "*pbVar4" * identifier) == number_literal) )) (goto_statement "goto LAB_000dbd64;" goto statement_identifier ;)) (labeled_statement "LAB_000dbdf0:\n          uVar2 = 0x1505;" statement_identifier : (expression_statement "uVar2 = 0x1505;" (assignment_expression "uVar2 = 0x1505" identifier = number_literal) ;)) (do_statement "do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);" do (compound_statement "{\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          }" { (expression_statement "pbVar5 = pbVar4 + 1;" (assignment_expression "pbVar5 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = (uint)*pbVar4 + uVar2 * 0x21;" (assignment_expression "uVar2 = (uint)*pbVar4 + uVar2 * 0x21" identifier = (binary_expression "(uint)*pbVar4 + uVar2 * 0x21" (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier) + (binary_expression "uVar2 * 0x21" identifier * number_literal))) ;) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar5 != 0)" ( (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" * identifier) != number_literal) )) ;) }) (else_clause "else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" else (compound_statement "{\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" { (expression_statement "pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];" (assignment_expression "pbVar4 = (byte *)((undefined4 *)piVar10[2])[1]" identifier = (cast_expression "(byte *)((undefined4 *)piVar10[2])[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((undefined4 *)piVar10[2])[1]" (parenthesized_expression "((undefined4 *)piVar10[2])" ( (cast_expression "(undefined4 *)piVar10[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[2]" identifier [ number_literal ])) )) [ number_literal ]))) ;) (if_statement "if (*pbVar4 != 0) goto LAB_000dbdf0;" if (parenthesized_expression "(*pbVar4 != 0)" ( (binary_expression "*pbVar4 != 0" (pointer_expression "*pbVar4" * identifier) != number_literal) )) (goto_statement "goto LAB_000dbdf0;" goto statement_identifier ;)) (labeled_statement "LAB_000dbd64:\n          uVar2 = 0x1505;" statement_identifier : (expression_statement "uVar2 = 0x1505;" (assignment_expression "uVar2 = 0x1505" identifier = number_literal) ;)) }))) (expression_statement "uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;" (assignment_expression "uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2" identifier = (binary_expression "*piVar10 << 0x10 ^ uVar6 ^ uVar2" (binary_expression "*piVar10 << 0x10 ^ uVar6" (binary_expression "*piVar10 << 0x10" (pointer_expression "*piVar10" * identifier) << number_literal) ^ identifier) ^ identifier)) ;) }))) (if_statement "if (param_5[0xe] == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(param_5[0xe] == 0)" ( (binary_expression "param_5[0xe] == 0" (subscript_expression "param_5[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_34 = piVar10;" (assignment_expression "local_34 = piVar10" identifier = identifier) ;) (expression_statement "piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);" (assignment_expression "piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" identifier = (cast_expression "(int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" identifier (argument_list "(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" ( (binary_expression "param_5 + 0xd" identifier + number_literal) , (binary_expression "uVar2 % (uint)param_5[0xe]" identifier % (cast_expression "(uint)param_5[0xe]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[0xe]" identifier [ number_literal ]))) , (pointer_expression "&local_34" & identifier) , identifier ))))) ;) (if_statement "if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }" if (parenthesized_expression "((piVar1 == (int *)0x0) || (*piVar1 == 0))" ( (binary_expression "(piVar1 == (int *)0x0) || (*piVar1 == 0)" (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) ))) )) (compound_statement "{\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }" { (expression_statement "local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14)" identifier = (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" ( (pointer_expression "*(code *)PTR_operator_new_004c13a8" * (cast_expression "(code *)PTR_operator_new_004c13a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "iVar9 = piVar10[1];" (assignment_expression "iVar9 = piVar10[1]" identifier = (subscript_expression "piVar10[1]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar10[2];" (assignment_expression "iVar8 = piVar10[2]" identifier = (subscript_expression "piVar10[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar10[3];" (assignment_expression "iVar7 = piVar10[3]" identifier = (subscript_expression "piVar10[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar10[4];" (assignment_expression "iVar3 = piVar10[4]" identifier = (subscript_expression "piVar10[4]" identifier [ number_literal ])) ;) (expression_statement "*local_38 = *piVar10;" (assignment_expression "*local_38 = *piVar10" (pointer_expression "*local_38" * identifier) = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "local_38[1] = iVar9;" (assignment_expression "local_38[1] = iVar9" (subscript_expression "local_38[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[2] = iVar8;" (assignment_expression "local_38[2] = iVar8" (subscript_expression "local_38[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[3] = iVar7;" (assignment_expression "local_38[3] = iVar7" (subscript_expression "local_38[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[4] = iVar3;" (assignment_expression "local_38[4] = iVar3" (subscript_expression "local_38[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);" (call_expression "FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38)" identifier (argument_list "(auStack_40,param_5 + 0xd,&local_38)" ( identifier , (binary_expression "param_5 + 0xd" identifier + number_literal) , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "FUN_000d56e4(param_5,piVar10);" (call_expression "FUN_000d56e4(param_5,piVar10)" identifier (argument_list "(param_5,piVar10)" ( identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*piVar11;" (assignment_expression "piVar11 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (if_statement "if (piVar11 == (int *)0x0) break;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_000dbdbc;" goto statement_identifier ;) })) (expression_statement "piVar11 = (int *)*piVar11;" (assignment_expression "piVar11 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) }) while (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;)) (expression_statement "uVar2 = param_5[1] + local_2c[1];" (assignment_expression "uVar2 = param_5[1] + local_2c[1]" identifier = (binary_expression "param_5[1] + local_2c[1]" (subscript_expression "param_5[1]" identifier [ number_literal ]) + (subscript_expression "local_2c[1]" identifier [ number_literal ]))) ;) })) (expression_statement "param_5[1] = uVar2;" (assignment_expression "param_5[1] = uVar2" (subscript_expression "param_5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(int **)(local_30 + 500) = param_5;" (assignment_expression "*(int **)(local_30 + 500) = param_5" (pointer_expression "*(int **)(local_30 + 500)" * (cast_expression "(int **)(local_30 + 500)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_30 + 500)" ( (binary_expression "local_30 + 500" identifier + number_literal) )))) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT + (pointer_expression * IDENT)) + (pointer_expression * IDENT)) + (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ])) + IDENT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * IDENT) << LIT) ^ IDENT) ^ IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)\n\n{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_000dbc54(int param_1,int *param_2,int *param_3,int param_4,int *param_5)" (identifier "FUN_000dbc54") (parameter_list "(int param_1,int *param_2,int *param_3,int param_4,int *param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (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") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int *piVar10;\n  int *piVar11;\n  undefined1 auStack_40 [8];\n  int *local_38;\n  int *local_34;\n  int local_30;\n  int *local_2c;\n  \n  uVar2 = param_3[1] + param_5[1];\n  uVar6 = *(uint *)(param_1 + 4);\n  if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }\n  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }\n  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }\n  piVar11 = (int *)param_3[0xf];\n  local_30 = param_4;\n  if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }\n  param_5[1] = uVar2;\n  *(int **)(local_30 + 500) = param_5;\n  return 1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined1 auStack_40 [8];" (type_identifier "undefined1") (array_declarator "auStack_40 [8]" (identifier "auStack_40") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int *local_38;" (primitive_type "int") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "uVar2 = param_3[1] + param_5[1];" (assignment_expression "uVar2 = param_3[1] + param_5[1]" (identifier "uVar2") (= "=") (binary_expression "param_3[1] + param_5[1]" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (+ "+") (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar6 = *(uint *)(param_1 + 4);" (assignment_expression "uVar6 = *(uint *)(param_1 + 4)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar2 < *(uint *)(param_1 + 4)) {\n    uVar6 = uVar2;\n  }" (if "if") (parenthesized_expression "(uVar2 < *(uint *)(param_1 + 4))" (( "(") (binary_expression "uVar2 < *(uint *)(param_1 + 4)" (identifier "uVar2") (< "<") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n    uVar6 = uVar2;\n  }" ({ "{") (expression_statement "uVar6 = uVar2;" (assignment_expression "uVar6 = uVar2" (identifier "uVar6") (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (if_statement "if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {\n    iVar3 = *(int *)(param_1 + 8);\n  }\n  else {\n    iVar3 = param_3[2] + param_5[2];\n  }" (if "if") (parenthesized_expression "((param_5 == param_2) && (param_3[4] + param_5[4] != 0))" (( "(") (binary_expression "(param_5 == param_2) && (param_3[4] + param_5[4] != 0)" (parenthesized_expression "(param_5 == param_2)" (( "(") (binary_expression "param_5 == param_2" (identifier "param_5") (== "==") (identifier "param_2")) () ")")) (&& "&&") (parenthesized_expression "(param_3[4] + param_5[4] != 0)" (( "(") (binary_expression "param_3[4] + param_5[4] != 0" (binary_expression "param_3[4] + param_5[4]" (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]")) (+ "+") (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar3 = *(int *)(param_1 + 8);\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 8);" (assignment_expression "iVar3 = *(int *)(param_1 + 8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = param_3[2] + param_5[2];\n  }" (else "else") (compound_statement "{\n    iVar3 = param_3[2] + param_5[2];\n  }" ({ "{") (expression_statement "iVar3 = param_3[2] + param_5[2];" (assignment_expression "iVar3 = param_3[2] + param_5[2]" (identifier "iVar3") (= "=") (binary_expression "param_3[2] + param_5[2]" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (+ "+") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (if_statement "if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6)" (( "(") (binary_expression "0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6" (number_literal "0x3ff9") (< "<") (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6" (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4]" (binary_expression "iVar3 + *param_3 + *param_5 + param_3[4]" (binary_expression "iVar3 + *param_3 + *param_5" (binary_expression "iVar3 + *param_3" (identifier "iVar3") (+ "+") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (+ "+") (pointer_expression "*param_5" (* "*") (identifier "param_5"))) (+ "+") (subscript_expression "param_3[4]" (identifier "param_3") ([ "[") (number_literal "4") (] "]"))) (+ "+") (subscript_expression "param_5[4]" (identifier "param_5") ([ "[") (number_literal "4") (] "]"))) (+ "+") (identifier "uVar6"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "piVar11 = (int *)param_3[0xf];" (assignment_expression "piVar11 = (int *)param_3[0xf]" (identifier "piVar11") (= "=") (cast_expression "(int *)param_3[0xf]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[0xf]" (identifier "param_3") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "local_30 = param_4;" (assignment_expression "local_30 = param_4" (identifier "local_30") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (piVar11 != (int *)0x0) {\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }" (if "if") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_2c = param_3;\nLAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);\n    uVar2 = param_5[1] + local_2c[1];\n  }" ({ "{") (expression_statement "local_2c = param_3;" (assignment_expression "local_2c = param_3" (identifier "local_2c") (= "=") (identifier "param_3")) (; ";")) (labeled_statement "LAB_000dbdbc:\n    do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);" (statement_identifier "LAB_000dbdbc") (: ":") (do_statement "do {\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    } while (piVar11 != (int *)0x0);" (do "do") (compound_statement "{\n      piVar10 = (int *)piVar11[1];\n      uVar6 = piVar10[1];\n      if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }\n      if (param_5[0xe] == 0) {\n        trap(7);\n      }\n      local_34 = piVar10;\n      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);\n      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }\n      piVar11 = (int *)*piVar11;\n    }" ({ "{") (expression_statement "piVar10 = (int *)piVar11[1];" (assignment_expression "piVar10 = (int *)piVar11[1]" (identifier "piVar10") (= "=") (cast_expression "(int *)piVar11[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar6 = piVar10[1];" (assignment_expression "uVar6 = piVar10[1]" (identifier "uVar6") (= "=") (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (*(char *)(piVar10 + 3) == '\x02') {\n        uVar2 = uVar6 + 0x40000;\n      }\n      else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" (if "if") (parenthesized_expression "(*(char *)(piVar10 + 3) == '\x02')" (( "(") (binary_expression "*(char *)(piVar10 + 3) == '\x02'" (pointer_expression "*(char *)(piVar10 + 3)" (* "*") (cast_expression "(char *)(piVar10 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar10 + 3)" (( "(") (binary_expression "piVar10 + 3" (identifier "piVar10") (+ "+") (number_literal "3")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n        uVar2 = uVar6 + 0x40000;\n      }" ({ "{") (expression_statement "uVar2 = uVar6 + 0x40000;" (assignment_expression "uVar2 = uVar6 + 0x40000" (identifier "uVar2") (= "=") (binary_expression "uVar6 + 0x40000" (identifier "uVar6") (+ "+") (number_literal "0x40000"))) (; ";")) (} "}")) (else_clause "else {\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" (else "else") (compound_statement "{\n        if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }\n        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;\n      }" ({ "{") (if_statement "if (uVar6 == 0xffffffff) {\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }\n        else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" (if "if") (parenthesized_expression "(uVar6 == 0xffffffff)" (( "(") (binary_expression "uVar6 == 0xffffffff" (identifier "uVar6") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n          pbVar4 = *(byte **)piVar10[2];\n          if (*pbVar4 == 0) goto LAB_000dbd64;\nLAB_000dbdf0:\n          uVar2 = 0x1505;\n          do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);\n        }" ({ "{") (expression_statement "pbVar4 = *(byte **)piVar10[2];" (assignment_expression "pbVar4 = *(byte **)piVar10[2]" (identifier "pbVar4") (= "=") (pointer_expression "*(byte **)piVar10[2]" (* "*") (cast_expression "(byte **)piVar10[2]" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "piVar10[2]" (identifier "piVar10") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (if_statement "if (*pbVar4 == 0) goto LAB_000dbd64;" (if "if") (parenthesized_expression "(*pbVar4 == 0)" (( "(") (binary_expression "*pbVar4 == 0" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dbd64;" (goto "goto") (statement_identifier "LAB_000dbd64") (; ";"))) (labeled_statement "LAB_000dbdf0:\n          uVar2 = 0x1505;" (statement_identifier "LAB_000dbdf0") (: ":") (expression_statement "uVar2 = 0x1505;" (assignment_expression "uVar2 = 0x1505" (identifier "uVar2") (= "=") (number_literal "0x1505")) (; ";"))) (do_statement "do {\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          } while (*pbVar5 != 0);" (do "do") (compound_statement "{\n            pbVar5 = pbVar4 + 1;\n            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;\n            pbVar4 = pbVar5;\n          }" ({ "{") (expression_statement "pbVar5 = pbVar4 + 1;" (assignment_expression "pbVar5 = pbVar4 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = (uint)*pbVar4 + uVar2 * 0x21;" (assignment_expression "uVar2 = (uint)*pbVar4 + uVar2 * 0x21" (identifier "uVar2") (= "=") (binary_expression "(uint)*pbVar4 + uVar2 * 0x21" (binary_expression "(uint)*pbVar4" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar4")) (+ "+") (binary_expression "uVar2 * 0x21" (identifier "uVar2") (* "*") (number_literal "0x21")))) (; ";")) (expression_statement "pbVar4 = pbVar5;" (assignment_expression "pbVar4 = pbVar5" (identifier "pbVar4") (= "=") (identifier "pbVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar5 != 0)" (( "(") (binary_expression "*pbVar5 != 0" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" (else "else") (compound_statement "{\n          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];\n          if (*pbVar4 != 0) goto LAB_000dbdf0;\nLAB_000dbd64:\n          uVar2 = 0x1505;\n        }" ({ "{") (expression_statement "pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];" (assignment_expression "pbVar4 = (byte *)((undefined4 *)piVar10[2])[1]" (identifier "pbVar4") (= "=") (cast_expression "(byte *)((undefined4 *)piVar10[2])[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((undefined4 *)piVar10[2])[1]" (parenthesized_expression "((undefined4 *)piVar10[2])" (( "(") (cast_expression "(undefined4 *)piVar10[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[2]" (identifier "piVar10") ([ "[") (number_literal "2") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (*pbVar4 != 0) goto LAB_000dbdf0;" (if "if") (parenthesized_expression "(*pbVar4 != 0)" (( "(") (binary_expression "*pbVar4 != 0" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000dbdf0;" (goto "goto") (statement_identifier "LAB_000dbdf0") (; ";"))) (labeled_statement "LAB_000dbd64:\n          uVar2 = 0x1505;" (statement_identifier "LAB_000dbd64") (: ":") (expression_statement "uVar2 = 0x1505;" (assignment_expression "uVar2 = 0x1505" (identifier "uVar2") (= "=") (number_literal "0x1505")) (; ";"))) (} "}")))) (expression_statement "uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;" (assignment_expression "uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2" (identifier "uVar2") (= "=") (binary_expression "*piVar10 << 0x10 ^ uVar6 ^ uVar2" (binary_expression "*piVar10 << 0x10 ^ uVar6" (binary_expression "*piVar10 << 0x10" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (<< "<<") (number_literal "0x10")) (^ "^") (identifier "uVar6")) (^ "^") (identifier "uVar2"))) (; ";")) (} "}")))) (if_statement "if (param_5[0xe] == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(param_5[0xe] == 0)" (( "(") (binary_expression "param_5[0xe] == 0" (subscript_expression "param_5[0xe]" (identifier "param_5") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "local_34 = piVar10;" (assignment_expression "local_34 = piVar10" (identifier "local_34") (= "=") (identifier "piVar10")) (; ";")) (expression_statement "piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);" (assignment_expression "piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" (identifier "FUN_000d0204") (argument_list "(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2)" (( "(") (binary_expression "param_5 + 0xd" (identifier "param_5") (+ "+") (number_literal "0xd")) (, ",") (binary_expression "uVar2 % (uint)param_5[0xe]" (identifier "uVar2") (% "%") (cast_expression "(uint)param_5[0xe]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[0xe]" (identifier "param_5") ([ "[") (number_literal "0xe") (] "]")))) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) (, ",") (identifier "uVar2") () ")"))))) (; ";")) (if_statement "if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }" (if "if") (parenthesized_expression "((piVar1 == (int *)0x0) || (*piVar1 == 0))" (( "(") (binary_expression "(piVar1 == (int *)0x0) || (*piVar1 == 0)" (parenthesized_expression "(piVar1 == (int *)0x0)" (( "(") (binary_expression "piVar1 == (int *)0x0" (identifier "piVar1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);\n        iVar9 = piVar10[1];\n        iVar8 = piVar10[2];\n        iVar7 = piVar10[3];\n        iVar3 = piVar10[4];\n        *local_38 = *piVar10;\n        local_38[1] = iVar9;\n        local_38[2] = iVar8;\n        local_38[3] = iVar7;\n        local_38[4] = iVar3;\n        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);\n        FUN_000d56e4(param_5,piVar10);\n        piVar11 = (int *)*piVar11;\n        if (piVar11 == (int *)0x0) break;\n        goto LAB_000dbdbc;\n      }" ({ "{") (expression_statement "local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);" (assignment_expression "local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (identifier "local_38") (= "=") (cast_expression "(int *)(*(code *)PTR_operator_new_004c13a8)(0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_004c13a8)(0x14)" (parenthesized_expression "(*(code *)PTR_operator_new_004c13a8)" (( "(") (pointer_expression "*(code *)PTR_operator_new_004c13a8" (* "*") (cast_expression "(code *)PTR_operator_new_004c13a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_004c13a8"))) () ")")) (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "iVar9 = piVar10[1];" (assignment_expression "iVar9 = piVar10[1]" (identifier "iVar9") (= "=") (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar8 = piVar10[2];" (assignment_expression "iVar8 = piVar10[2]" (identifier "iVar8") (= "=") (subscript_expression "piVar10[2]" (identifier "piVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar10[3];" (assignment_expression "iVar7 = piVar10[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar10[3]" (identifier "piVar10") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar3 = piVar10[4];" (assignment_expression "iVar3 = piVar10[4]" (identifier "iVar3") (= "=") (subscript_expression "piVar10[4]" (identifier "piVar10") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*local_38 = *piVar10;" (assignment_expression "*local_38 = *piVar10" (pointer_expression "*local_38" (* "*") (identifier "local_38")) (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "local_38[1] = iVar9;" (assignment_expression "local_38[1] = iVar9" (subscript_expression "local_38[1]" (identifier "local_38") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "local_38[2] = iVar8;" (assignment_expression "local_38[2] = iVar8" (subscript_expression "local_38[2]" (identifier "local_38") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "local_38[3] = iVar7;" (assignment_expression "local_38[3] = iVar7" (subscript_expression "local_38[3]" (identifier "local_38") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "local_38[4] = iVar3;" (assignment_expression "local_38[4] = iVar3" (subscript_expression "local_38[4]" (identifier "local_38") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);" (call_expression "FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38)" (identifier "FUN_000da1fc") (argument_list "(auStack_40,param_5 + 0xd,&local_38)" (( "(") (identifier "auStack_40") (, ",") (binary_expression "param_5 + 0xd" (identifier "param_5") (+ "+") (number_literal "0xd")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "FUN_000d56e4(param_5,piVar10);" (call_expression "FUN_000d56e4(param_5,piVar10)" (identifier "FUN_000d56e4") (argument_list "(param_5,piVar10)" (( "(") (identifier "param_5") (, ",") (identifier "piVar10") () ")"))) (; ";")) (expression_statement "piVar11 = (int *)*piVar11;" (assignment_expression "piVar11 = (int *)*piVar11" (identifier "piVar11") (= "=") (cast_expression "(int *)*piVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")))) (; ";")) (if_statement "if (piVar11 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_000dbdbc;" (goto "goto") (statement_identifier "LAB_000dbdbc") (; ";")) (} "}"))) (expression_statement "piVar11 = (int *)*piVar11;" (assignment_expression "piVar11 = (int *)*piVar11" (identifier "piVar11") (= "=") (cast_expression "(int *)*piVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";"))) (expression_statement "uVar2 = param_5[1] + local_2c[1];" (assignment_expression "uVar2 = param_5[1] + local_2c[1]" (identifier "uVar2") (= "=") (binary_expression "param_5[1] + local_2c[1]" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (+ "+") (subscript_expression "local_2c[1]" (identifier "local_2c") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}"))) (expression_statement "param_5[1] = uVar2;" (assignment_expression "param_5[1] = uVar2" (subscript_expression "param_5[1]" (identifier "param_5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(int **)(local_30 + 500) = param_5;" (assignment_expression "*(int **)(local_30 + 500) = param_5" (pointer_expression "*(int **)(local_30 + 500)" (* "*") (cast_expression "(int **)(local_30 + 500)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_30 + 500)" (( "(") (binary_expression "local_30 + 500" (identifier "local_30") (+ "+") (number_literal "500")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* 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: bool merge_got_with(Mips_output_data_got<32,_true> * this,
   Mips_got_info<32,_true> * from, Mips_relobj<32,_true> * object, Mips_got_info<32,_true> * to,
   Mips_output_data_got<32,_true> * this) */

bool __thiscall
anon_unknown.dwarf_29466b::var_10<32,var_3>::merge_got_with
          (var_10<32,var_3> *this,var_5<32,var_3> *from,
          var_6<32,var_3> *object,var_5<32,var_3> *to,
          var_10<32,var_3> *var_9)

{
  uchar uVar1;
  bool bVar2;
  type_1 uVar3;
  type_2 var_20;
  type_3 *var_23;
  type_4 var_19;
  type_2 var_7;
  int var_12;
  type_5 *var_18;
  type_5 *pbVar10;
  type_4 var_16;
  int var_11;
  type_2 var_8;
  type_6 aVar14;
  type_2 *this_00;
  var_1<32,var_3> *entry_00;
  type_7 *var_13;
  _Hashtable<(anonymous_namespace)::var_1<32,var_3>*,var_4(anonymous_namespace)::var_1<32,var_3>*,_std::allocator<(anonymous_namespace)::var_1<32,var_3>*>,_std::__detail::_Identity,var_4(anonymous_namespace)::Mips_got_entry_eq<32,var_3>,var_4(anonymous_namespace)::Mips_got_entry_hash<32,var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_2<true,var_3,var_3>var_4>
  a_Stack_40 [8];
  var_1<32,var_3> *entry2;
  var_1<32,var_3> *entry;
  var_5<32,var_3> *local_30;
  var_6<32,var_3> *local_2c;
  
  var_8 = *(type_2 *)
             &(this->super_Output_data_got<32,var_3>).super_Output_data_got_base.
              super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4;
  var_7 = (object->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
           super_Object.name_._M_dataplus._M_p +
           *(int *)&(var_9->super_Output_data_got<32,var_3>).super_Output_data_got_base.
                    super_Output_section_data_build.super_Output_section_data.super_Output_data.
                    field_0x4;
  var_11 = *(int *)((int)&(object->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                          super_Relobj.super_Object.name_.field_2 + 4) +
           *(int *)&(var_9->super_Output_data_got<32,var_3>).super_Output_data_got_base.
                    super_Output_section_data_build.super_Output_section_data.super_Output_data.
                    data_size_;
  if (var_7 < var_8) {
    var_8 = var_7;
  }
  if ((var_9 == (var_10<32,var_3> *)from) && (var_11 != 0)) {
    var_12 = *(int *)&(this->super_Output_data_got<32,var_3>).super_Output_data_got_base.
                     super_Output_section_data_build.super_Output_section_data.super_Output_data.
                     address_;
  }
  else {
    var_12 = (object->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            super_Object.name_._M_string_length +
            *(int *)&(var_9->super_Output_data_got<32,var_3>).super_Output_data_got_base.
                     super_Output_section_data_build.super_Output_section_data.super_Output_data.
                     address_;
  }
  if ((type_2)0x3ff9 <
      var_8 + (int)(object->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.
                     super_Relobj.super_Object._vptr_Object +
                (int)(var_9->super_Output_data_got<32,var_3>).super_Output_data_got_base.
                     super_Output_section_data_build.super_Output_section_data.super_Output_data.
                     _vptr_Output_data + var_12 + var_11) {
    return false;
  }
  var_13 = (type_7 *)
            (object->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj.
            output_sections_.
            super__Vector_base<gold::type_7*,_std::allocator<gold::type_7*>var_4>.
            _M_impl._M_finish;
  local_30 = to;
  if (var_13 != (type_7 *)0x0) {
    this_00 = &(var_9->super_Output_data_got<32,var_3>).entries_.
               super__Vector_base<gold::var_14<32,var_3>::var_15,_std::allocator<gold::var_14<32,var_3>::var_15>var_4>
               ._M_impl._M_finish;
    local_2c = object;
LAB_000dbdbc:
    do {
      entry_00 = *(var_1<32,var_3> **var_17)&(var_13->super_Output_data).field_0x4;
      var_16 = entry_00->symndx_;
      if (entry_00->tls_type_ == '\x02') {
        var_19 = var_16 + 0x40000;
      }
      else {
        if (var_16 == 0xffffffff) {
          var_18 = (type_5 *)(((entry_00->d).sym)->super_Sized_symbol<32>var_17).super_Symbol.name_;
          if (*var_18 == 0) goto LAB_000dbd64;
LAB_000dbdf0:
          var_19 = 0x1505;
          do {
            pbVar10 = var_18 + 1;
            var_19 = (type_4)*var_18 + var_19 * 0x21;
            var_18 = pbVar10;
          } while (*pbVar10 != 0);
        }
        else {
          var_18 = (type_5 *)(((entry_00->d).sym)->super_Sized_symbol<32>var_17).super_Symbol.version_;
          if (*var_18 != 0) goto LAB_000dbdf0;
LAB_000dbd64:
          var_19 = 0x1505;
        }
        var_19 = entry_00->addend_ << 0x10 ^ var_16 ^ var_19;
      }
      var_20 = (var_9->super_Output_data_got<32,var_3>).entries_.
               super__Vector_base<gold::var_14<32,var_3>::var_15,_std::allocator<gold::var_14<32,var_3>::var_15>var_4>
               ._M_impl._M_end_of_storage;
      if (var_20 == (type_2)0x0) {
        var_21(7);
      }
      entry = entry_00;
      var_23 = std::
               _Hashtable<(anonymous_namespace)::var_1<32,var_3>*,var_4(anonymous_namespace)::var_1<32,var_3>*,_std::allocator<(anonymous_namespace)::var_1<32,var_3>*>,_std::__detail::_Identity,var_4(anonymous_namespace)::Mips_got_entry_eq<32,var_3>,var_4(anonymous_namespace)::Mips_got_entry_hash<32,var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_2<true,var_3,var_3>var_4>
               ::var_22
                         ((_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_2<true,var_3,var_3>var_4>
                           *)this_00,var_19 % (type_4)var_20,&entry,var_19);
      if ((var_23 == (type_3 *)0x0) || (var_23->_M_nxt == (type_8 *)0x0)) {
        entry2 = (var_1<32,var_3> *var_17)(*(type_9 *)PTR_operator_new_004c13a8)(0x14);
        var_19 = entry_00->symndx_;
        aVar14 = entry_00->d;
        uVar1 = entry_00->tls_type_;
        bVar2 = entry_00->is_section_symbol_;
        uVar3 = *(type_1 *)&entry_00->field_0xe;
        var_16 = entry_00->shndx_;
        entry2->addend_ = entry_00->addend_;
        entry2->symndx_ = var_19;
        entry2->d = aVar14;
        entry2->tls_type_ = uVar1;
        entry2->is_section_symbol_ = bVar2;
        *(type_1 *)&entry2->field_0xe = uVar3;
        entry2->shndx_ = var_16;
        std::
        _Hashtable<(anonymous_namespace)::var_1<32,var_3>*,var_4(anonymous_namespace)::var_1<32,var_3>*,_std::allocator<(anonymous_namespace)::var_1<32,var_3>*>,_std::__detail::_Identity,var_4(anonymous_namespace)::Mips_got_entry_eq<32,var_3>,var_4(anonymous_namespace)::Mips_got_entry_hash<32,var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_2<true,var_3,var_3>var_4>
        ::
        _M_insert<(anonymous_namespace)::var_1<32,var_3>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::var_1<32,var_3>*,var_3>var_4>var_4>var_4>
                  (a_Stack_40,this_00,&entry2);
        var_5<32,var_3>::var_24((var_5<32,var_3> *)var_9,entry_00);
        var_13 = (type_7 *)(var_13->super_Output_data)._vptr_Output_data;
        if (var_13 == (type_7 *)0x0) break;
        goto LAB_000dbdbc;
      }
      var_13 = (type_7 *)(var_13->super_Output_data)._vptr_Output_data;
    } while (var_13 != (type_7 *)0x0);
    var_7 = (local_2c->super_Sized_relobj_file<32,var_3>).super_Sized_relobj<32,var_3>.super_Relobj
             .super_Object.name_._M_dataplus._M_p +
             *(int *)&(var_9->super_Output_data_got<32,var_3>).super_Output_data_got_base.
                      super_Output_section_data_build.super_Output_section_data.super_Output_data.
                      field_0x4;
  }
  *(type_2 *)
   &(var_9->super_Output_data_got<32,var_3>).super_Output_data_got_base.
    super_Output_section_data_build.super_Output_section_data.super_Output_data.field_0x4 = var_7;
  local_30[3].global_got_symbols_._M_h._M_before_begin._M_nxt = (type_8 *)var_9;
  return true;
}


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

undefined4 MASKED(int param_1,int *param_2,int *param_3,int param_4,int *param_5)

{
  int *piVar1;
  uint uVar2;
  int iVar3;
  byte *pbVar4;
  byte *pbVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int *piVar10;
  int *piVar11;
  undefined1 auStack_40 [8];
  int *local_38;
  int *local_34;
  int local_30;
  int *local_2c;
  
  uVar2 = param_3[1] + param_5[1];
  uVar6 = *(uint *)(param_1 + 4);
  if (uVar2 < *(uint *)(param_1 + 4)) {
    uVar6 = uVar2;
  }
  if ((param_5 == param_2) && (param_3[4] + param_5[4] != 0)) {
    iVar3 = *(int *)(param_1 + 8);
  }
  else {
    iVar3 = param_3[2] + param_5[2];
  }
  if (0x3ff9 < iVar3 + *param_3 + *param_5 + param_3[4] + param_5[4] + uVar6) {
    return 0;
  }
  piVar11 = (int *)param_3[0xf];
  local_30 = param_4;
  if (piVar11 != (int *)0x0) {
    local_2c = param_3;
LAB_000dbdbc:
    do {
      piVar10 = (int *)piVar11[1];
      uVar6 = piVar10[1];
      if (*(char *)(piVar10 + 3) == '\x02') {
        uVar2 = uVar6 + 0x40000;
      }
      else {
        if (uVar6 == 0xffffffff) {
          pbVar4 = *(byte **)piVar10[2];
          if (*pbVar4 == 0) goto LAB_000dbd64;
LAB_000dbdf0:
          uVar2 = 0x1505;
          do {
            pbVar5 = pbVar4 + 1;
            uVar2 = (uint)*pbVar4 + uVar2 * 0x21;
            pbVar4 = pbVar5;
          } while (*pbVar5 != 0);
        }
        else {
          pbVar4 = (byte *)((undefined4 *)piVar10[2])[1];
          if (*pbVar4 != 0) goto LAB_000dbdf0;
LAB_000dbd64:
          uVar2 = 0x1505;
        }
        uVar2 = *piVar10 << 0x10 ^ uVar6 ^ uVar2;
      }
      if (param_5[0xe] == 0) {
        trap(7);
      }
      local_34 = piVar10;
      piVar1 = (int *)FUN_000d0204(param_5 + 0xd,uVar2 % (uint)param_5[0xe],&local_34,uVar2);
      if ((piVar1 == (int *)0x0) || (*piVar1 == 0)) {
        local_38 = (int *)(*(code *)PTR_operator_new_004c13a8)(0x14);
        iVar9 = piVar10[1];
        iVar8 = piVar10[2];
        iVar7 = piVar10[3];
        iVar3 = piVar10[4];
        *local_38 = *piVar10;
        local_38[1] = iVar9;
        local_38[2] = iVar8;
        local_38[3] = iVar7;
        local_38[4] = iVar3;
        FUN_000da1fc(auStack_40,param_5 + 0xd,&local_38);
        FUN_000d56e4(param_5,piVar10);
        piVar11 = (int *)*piVar11;
        if (piVar11 == (int *)0x0) break;
        goto LAB_000dbdbc;
      }
      piVar11 = (int *)*piVar11;
    } while (piVar11 != (int *)0x0);
    uVar2 = param_5[1] + local_2c[1];
  }
  param_5[1] = uVar2;
  *(int **)(local_30 + 500) = param_5;
  return 1;
}

