
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void save_segments(Layout * this, Segment_states * segment_states) */

void __thiscall gold::Layout::save_segments(Layout *this,Segment_states *segment_states)

{
  byte bVar1;
  Output_segment *__node;
  anon_struct_4_0_00000001_for___align aVar2;
  anon_struct_4_0_00000001_for___align __src;
  _Hash_node_base *p_Var3;
  uint uVar4;
  undefined4 *__n_elt;
  size_t __n;
  Output_segment *pOVar5;
  byte bVar6;
  byte bVar7;
  byte bVar8;
  _Hash_node_base *p_Var9;
  uint __code;
  __bucket_type p_Var10;
  _Hash_node_base *p_Var11;
  _Hash_node_base *p_Var12;
  __bucket_type p_Var13;
  pointer local_2c;
  Output_segment *local_28;
  _Hash_node_base *local_20;
  
  local_2c = (this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_start;
  if (local_2c !=
      (this->segment_list_).
      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
      _M_finish) {
    do {
      __node = *local_2c;
      p_Var3 = (_Hash_node_base *)operator_new(0x1a0);
      p_Var12 = p_Var3;
      local_28 = __node;
      do {
        uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -
                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;
        p_Var12->_M_nxt = (_Hash_node_base *)0x0;
        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;
        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;
        if ((int)uVar4 >> 2 == 0) {
          p_Var9 = (_Hash_node_base *)0x0;
        }
        else {
          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */
            std::__throw_bad_alloc();
          }
                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */
          p_Var9 = (_Hash_node_base *)operator_new(uVar4);
        }
        p_Var12->_M_nxt = p_Var9;
        p_Var12[1]._M_nxt = p_Var9;
        p_Var12[2]._M_nxt = (_Hash_node_base *)(uVar4 + (int)p_Var9);
        aVar2 = (((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                   *)local_28->output_lists_)->_M_storage)._M_storage.__align;
        __src = (anon_struct_4_0_00000001_for___align)
                (((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                   *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;
        __n = (int)aVar2 - (int)__src;
        if (aVar2 != __src) {
          memmove(p_Var9,(void *)__src,__n);
        }
        p_Var11 = p_Var12 + 3;
        p_Var12[1]._M_nxt = (_Hash_node_base *)((int)p_Var9 + __n);
        local_28 = (Output_segment *)
                   ((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                     *)local_28->output_lists_ + 1);
        p_Var12 = p_Var11;
      } while (p_Var3 + 0x57 != p_Var11);
      p_Var12 = *(_Hash_node_base **)((int)&__node->vaddr_ + 4);
      p_Var3[0x57]._M_nxt = *(_Hash_node_base **)&__node->vaddr_;
      p_Var3[0x58]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->paddr_;
      p_Var3[0x5a]._M_nxt = *(_Hash_node_base **)((int)&__node->paddr_ + 4);
      p_Var9 = *(_Hash_node_base **)((int)&__node->memsz_ + 4);
      p_Var3[0x59]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->memsz_;
      p_Var3[0x5c]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->max_align_ + 4);
      p_Var3[0x5b]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->max_align_;
      p_Var3[0x5e]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->min_p_align_ + 4);
      p_Var3[0x5d]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->min_p_align_;
      p_Var3[0x60]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->offset_ + 4);
      p_Var3[0x5f]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->offset_;
      p_Var3[0x62]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->filesz_ + 4);
      p_Var3[0x61]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->filesz_;
      p_Var3[100]._M_nxt = p_Var9;
      p_Var3[99]._M_nxt = p_Var12;
      p_Var3[0x65]._M_nxt = (_Hash_node_base *)__node->type_;
      p_Var3[0x66]._M_nxt = (_Hash_node_base *)__node->flags_;
      bVar1 = *(byte *)&p_Var3[0x67]._M_nxt;
      bVar6 = __node->field_0x19c & 1;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6;
      bVar7 = __node->field_0x19c & 2;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7;
      bVar8 = __node->field_0x19c & 4;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8
      ;
      uVar4 = (segment_states->_M_h)._M_bucket_count;
      __code = (uint)__node % uVar4;
      p_Var10 = (segment_states->_M_h)._M_buckets[__code];
      if (p_Var10 != (__bucket_type)0x0) {
        pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt;
        p_Var13 = p_Var10->_M_nxt;
        while (__node != pOVar5) {
          p_Var12 = p_Var13->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,
             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;
        }
        p_Var12 = p_Var10->_M_nxt;
        if (p_Var12 != (_Hash_node_base *)0x0) goto LAB_000b414e;
      }
LAB_000b4178:
      __n_elt = (undefined4 *)operator_new(0xc);
      *__n_elt = 0;
      __n_elt[1] = __node;
      __n_elt[2] = 0;
      std::
      _Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
      ::_M_insert_unique_node
                ((_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,
                 (size_type)__n_elt);
      p_Var12 = local_20;
LAB_000b414e:
      local_2c = local_2c + 1;
      p_Var12[2]._M_nxt = p_Var3;
    } while ((this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_finish != local_2c);
  }
  return;
}



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

void FUN_000b3ec0(int param_1,int *param_2)

{
  byte bVar1;
  byte bVar2;
  int *piVar3;
  int iVar4;
  int *piVar5;
  undefined4 *puVar6;
  int iVar7;
  int *piVar8;
  byte bVar9;
  byte bVar10;
  int iVar11;
  int *piVar12;
  undefined1 *puVar13;
  int *piVar14;
  int aiStack_70 [9];
  undefined1 auStack_4c [8];
  int *local_44;
  int *local_40;
  int local_3c;
  int local_38;
  uint local_34;
  undefined **local_30;
  uint *local_2c;
  int *local_28;
  int *local_24;
  int local_20 [4];
  
  local_30 = &__DT_PLTGOT;
  local_44 = local_20;
  puVar13 = auStack_4c;
  local_2c = *(uint **)(param_1 + 0x124);
  if (local_2c != *(uint **)(param_1 + 0x128)) {
    do {
      piVar3 = (int *)*local_2c;
      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;
      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;
      local_24 = (int *)FUN_001fd480();
      local_40 = local_24 + 0x57;
      local_3c = 0x1c;
      piVar12 = local_24;
      local_28 = piVar3;
      do {
        local_34 = local_28[1] - *local_28;
        *piVar12 = 0;
        piVar12[1] = 0;
        piVar12[2] = 0;
        if ((int)local_34 >> 2 == 0) {
          iVar11 = 0;
        }
        else {
          if (0x3fffffff < (uint)((int)local_34 >> 2)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */
            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;
            FUN_00244870();
          }
          *(uint *)(puVar13 + -0x10) = local_34;
                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */
          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;
          iVar11 = FUN_001fd480();
        }
        *piVar12 = iVar11;
        piVar12[1] = iVar11;
        piVar12[2] = local_34 + iVar11;
        iVar4 = *local_28;
        iVar7 = local_28[1] - iVar4;
        local_34 = iVar11;
        if (local_28[1] != iVar4) {
          *(int *)(puVar13 + -8) = iVar7;
          *(int *)(puVar13 + -0xc) = iVar4;
          *(int *)(puVar13 + -0x10) = iVar11;
          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;
          local_38 = iVar7;
          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));
          iVar7 = local_38;
        }
        local_3c = local_3c + -1;
        piVar8 = piVar12 + 3;
        piVar12[1] = local_34 + iVar7;
        local_28 = local_28 + 3;
        piVar12 = piVar8;
      } while (local_40 != piVar8);
      iVar11 = piVar3[0x58];
      local_24[0x57] = piVar3[0x57];
      local_24[0x58] = iVar11;
      iVar11 = piVar3[0x59];
      local_24[0x5a] = piVar3[0x5a];
      iVar4 = piVar3[0x5c];
      local_24[0x59] = iVar11;
      iVar11 = piVar3[0x5b];
      local_24[0x5c] = iVar4;
      iVar4 = piVar3[0x5e];
      local_24[0x5b] = iVar11;
      iVar11 = piVar3[0x5d];
      local_24[0x5e] = iVar4;
      iVar4 = piVar3[0x60];
      local_24[0x5d] = iVar11;
      iVar11 = piVar3[0x5f];
      local_24[0x60] = iVar4;
      iVar4 = piVar3[0x62];
      local_24[0x5f] = iVar11;
      iVar11 = piVar3[0x61];
      local_24[0x62] = iVar4;
      iVar4 = piVar3[100];
      local_24[0x61] = iVar11;
      iVar11 = piVar3[99];
      local_24[100] = iVar4;
      local_24[99] = iVar11;
      local_24[0x65] = piVar3[0x65];
      local_24[0x66] = piVar3[0x66];
      bVar1 = *(byte *)(local_24 + 0x67);
      bVar9 = *(byte *)(piVar3 + 0x67) & 1;
      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;
      bVar10 = *(byte *)(piVar3 + 0x67) & 2;
      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;
      bVar2 = *(byte *)(piVar3 + 0x67);
      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;
      *(byte *)(local_24 + 0x67) =
           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;
      local_34 = param_2[1];
      local_28 = (int *)((uint)piVar3 % local_34);
      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);
      if (piVar12 != (int *)0x0) {
        piVar8 = (int *)((int *)*piVar12)[1];
        piVar14 = (int *)*piVar12;
        while (piVar3 != piVar8) {
          piVar5 = (int *)*piVar14;
          if ((piVar5 == (int *)0x0) ||
             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,
             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;
        }
        iVar11 = *piVar12;
        if (iVar11 != 0) goto LAB_000b414e;
      }
LAB_000b4178:
      *(undefined4 *)(puVar13 + -0x10) = 0xc;
      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;
      puVar6 = (undefined4 *)FUN_001fd480();
      *puVar6 = 0;
      puVar6[1] = piVar3;
      puVar6[2] = 0;
      *(undefined4 *)(puVar13 + -0xc) = 1;
      *(undefined4 **)(puVar13 + -0x10) = puVar6;
      *(int **)(puVar13 + -0x14) = piVar3;
      *(int **)(puVar13 + -0x18) = local_28;
      *(int **)(puVar13 + -0x1c) = param_2;
      *(int **)(puVar13 + -0x20) = local_44;
      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;
      FUN_000be1e0();
      puVar13 = puVar13 + -4;
      iVar11 = local_20[0];
LAB_000b414e:
      local_2c = local_2c + 1;
      *(int **)(iVar11 + 8) = local_24;
    } while (*(uint **)(param_1 + 0x128) != local_2c);
  }
  return;
}


CALL 0x000644b6
ADD EAX,0x2fb13b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
LEA ESI,[EBP + -0x1c]
PUSH EBX
SUB ESP,0x3c
MOV dword ptr [EBP + -0x2c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x40],ESI
MOV EAX,dword ptr [EAX + 0x124]
MOV dword ptr [EBP + -0x28],EAX
CMP EAX,dword ptr [EDI + 0x128]
JZ 0x000b4169
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP + -0x28]
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x2c]
MOV ESI,dword ptr [EAX]
PUSH 0x1a0
CALL 0x001fd480
ADD ESP,0x10
MOV dword ptr [EBP + -0x24],ESI
MOV dword ptr [EBP + -0x20],EAX
MOV EDI,EAX
ADD EAX,0x15c
MOV dword ptr [EBP + -0x3c],EAX
MOV dword ptr [EBP + -0x38],0x1c
JMP 0x000b3fa5
CMP EAX,0x3fffffff
JA 0x000b41b4
SUB ESP,0xc
PUSH dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x2c]
CALL 0x001fd480
MOV EDX,EAX
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x30]
MOV dword ptr [EDI],EDX
MOV dword ptr [EDI + 0x4],EDX
ADD EAX,EDX
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EBP + -0x24]
MOV EBX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV ECX,EBX
SUB ECX,EAX
CMP EBX,EAX
JZ 0x000b3f90
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x2c]
MOV dword ptr [EBP + -0x34],ECX
PUSH ECX
PUSH EAX
PUSH EDX
MOV dword ptr [EBP + -0x30],EDX
CALL 0x0002a8a0
MOV ECX,dword ptr [EBP + -0x34]
MOV EDX,dword ptr [EBP + -0x30]
ADD ESP,0x10
ADD EDX,ECX
SUB dword ptr [EBP + -0x38],0x1
ADD EDI,0xc
MOV dword ptr [EDI + -0x8],EDX
ADD dword ptr [EBP + -0x24],0xc
CMP dword ptr [EBP + -0x3c],EDI
JZ 0x000b3fd8
MOV EBX,dword ptr [EBP + -0x24]
MOV EAX,dword ptr [EBX + 0x4]
SUB EAX,dword ptr [EBX]
MOV dword ptr [EDI],0x0
MOV dword ptr [EBP + -0x30],EAX
SAR EAX,0x2
MOV dword ptr [EDI + 0x4],0x0
MOV dword ptr [EDI + 0x8],0x0
JNZ 0x000b3f38
XOR EDX,EDX
JMP 0x000b3f56
MOV ECX,dword ptr [EBP + -0x20]
MOV EAX,dword ptr [ESI + 0x15c]
MOV EDX,dword ptr [ESI + 0x160]
MOV dword ptr [ECX + 0x15c],EAX
MOV dword ptr [ECX + 0x160],EDX
MOV EDX,dword ptr [ESI + 0x168]
MOV EAX,dword ptr [ESI + 0x164]
MOV dword ptr [ECX + 0x168],EDX
MOV EDX,dword ptr [ESI + 0x170]
MOV dword ptr [ECX + 0x164],EAX
MOV EAX,dword ptr [ESI + 0x16c]
MOV dword ptr [ECX + 0x170],EDX
MOV EDX,dword ptr [ESI + 0x178]
MOV dword ptr [ECX + 0x16c],EAX
MOV EAX,dword ptr [ESI + 0x174]
MOV dword ptr [ECX + 0x178],EDX
MOV EDX,dword ptr [ESI + 0x180]
MOV dword ptr [ECX + 0x174],EAX
MOV EAX,dword ptr [ESI + 0x17c]
MOV dword ptr [ECX + 0x180],EDX
MOV EDX,dword ptr [ESI + 0x188]
MOV dword ptr [ECX + 0x17c],EAX
MOV EAX,dword ptr [ESI + 0x184]
MOV dword ptr [ECX + 0x188],EDX
MOV EDX,dword ptr [ESI + 0x190]
MOV dword ptr [ECX + 0x184],EAX
MOV EAX,dword ptr [ESI + 0x18c]
MOV dword ptr [ECX + 0x190],EDX
MOV dword ptr [ECX + 0x18c],EAX
MOV EAX,dword ptr [ESI + 0x194]
MOV dword ptr [ECX + 0x194],EAX
MOV EAX,dword ptr [ESI + 0x198]
MOV dword ptr [ECX + 0x198],EAX
MOVZX EDX,byte ptr [ESI + 0x19c]
MOVZX EAX,byte ptr [ECX + 0x19c]
AND EDX,0x1
AND EAX,0xfffffffe
OR EAX,EDX
MOV byte ptr [ECX + 0x19c],AL
MOVZX EDX,byte ptr [ESI + 0x19c]
AND EAX,0xfffffffd
AND EDX,0x2
OR EAX,EDX
MOV byte ptr [ECX + 0x19c],AL
MOVZX EDX,byte ptr [ESI + 0x19c]
AND EAX,0xfffffffb
AND EDX,0x4
OR EAX,EDX
MOV byte ptr [ECX + 0x19c],AL
MOVZX EDX,byte ptr [ESI + 0x19c]
AND EAX,0xfffffff7
AND EDX,0x8
OR EAX,EDX
XOR EDX,EDX
MOV byte ptr [ECX + 0x19c],AL
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDI,EAX
MOV dword ptr [EBP + -0x30],EAX
MOV EAX,ESI
DIV EDI
MOV EAX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + EDX*0x4]
MOV dword ptr [EBP + -0x24],EDX
TEST EBX,EBX
JZ 0x000b4178
MOV EDI,dword ptr [EBX]
MOV ECX,dword ptr [EDI + 0x4]
JMP 0x000b4141
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x000b4178
MOV ECX,dword ptr [EAX + 0x4]
MOV EBX,EDI
XOR EDX,EDX
MOV EDI,EAX
MOV EAX,ECX
DIV dword ptr [EBP + -0x30]
CMP dword ptr [EBP + -0x24],EDX
JNZ 0x000b4178
CMP ESI,ECX
JNZ 0x000b4128
MOV EAX,dword ptr [EBX]
TEST EAX,EAX
JZ 0x000b4178
ADD EAX,0x8
MOV ESI,dword ptr [EBP + -0x20]
MOV EBX,dword ptr [EBP + 0x8]
ADD dword ptr [EBP + -0x28],0x4
MOV dword ptr [EAX],ESI
MOV EAX,dword ptr [EBP + -0x28]
CMP dword ptr [EBX + 0x128],EAX
JNZ 0x000b3f00
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x2c]
PUSH 0xc
CALL 0x001fd480
MOV dword ptr [EAX],0x0
MOV dword ptr [EAX + 0x4],ESI
MOV dword ptr [EAX + 0x8],0x0
POP EDX
POP ECX
PUSH 0x1
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x24]
PUSH dword ptr [EBP + 0xc]
PUSH dword ptr [EBP + -0x40]
CALL 0x000be1e0
MOV EAX,dword ptr [EBP + -0x1c]
ADD ESP,0x1c
ADD EAX,0x8
JMP 0x000b414e
MOV EBX,dword ptr [EBP + -0x2c]
CALL 0x00244870
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000b3ec0(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000b3ec0(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000b3ec0(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int aiStack_70 [9];" primitive_type (array_declarator "aiStack_70 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_4c [8];" type_identifier (array_declarator "auStack_4c [8]" identifier [ number_literal ]) ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20 [4];" primitive_type (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "local_30 = &__DT_PLTGOT;" (assignment_expression "local_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_44 = local_20;" (assignment_expression "local_44 = local_20" identifier = identifier) ;) (expression_statement "puVar13 = auStack_4c;" (assignment_expression "puVar13 = auStack_4c" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)(param_1 + 0x124);" (assignment_expression "local_2c = *(uint **)(param_1 + 0x124)" identifier = (pointer_expression "*(uint **)(param_1 + 0x124)" * (cast_expression "(uint **)(param_1 + 0x124)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }" if (parenthesized_expression "(local_2c != *(uint **)(param_1 + 0x128))" ( (binary_expression "local_2c != *(uint **)(param_1 + 0x128)" identifier != (pointer_expression "*(uint **)(param_1 + 0x128)" * (cast_expression "(uint **)(param_1 + 0x128)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }" { (do_statement "do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);" do (compound_statement "{\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    }" { (expression_statement "piVar3 = (int *)*local_2c;" (assignment_expression "piVar3 = (int *)*local_2c" identifier = (cast_expression "(int *)*local_2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2c" * identifier))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0x1a0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0x1a0" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f15;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f15" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (int *)FUN_001fd480();" (assignment_expression "local_24 = (int *)FUN_001fd480()" identifier = (cast_expression "(int *)FUN_001fd480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fd480()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_40 = local_24 + 0x57;" (assignment_expression "local_40 = local_24 + 0x57" identifier = (binary_expression "local_24 + 0x57" identifier + number_literal)) ;) (expression_statement "local_3c = 0x1c;" (assignment_expression "local_3c = 0x1c" identifier = number_literal) ;) (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" identifier = identifier) ;) (expression_statement "local_28 = piVar3;" (assignment_expression "local_28 = piVar3" identifier = identifier) ;) (do_statement "do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);" do (compound_statement "{\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      }" { (expression_statement "local_34 = local_28[1] - *local_28;" (assignment_expression "local_34 = local_28[1] - *local_28" identifier = (binary_expression "local_28[1] - *local_28" (subscript_expression "local_28[1]" identifier [ number_literal ]) - (pointer_expression "*local_28" * identifier))) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "piVar12[1] = 0;" (assignment_expression "piVar12[1] = 0" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[2] = 0;" (assignment_expression "piVar12[2] = 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" if (parenthesized_expression "((int)local_34 >> 2 == 0)" ( (binary_expression "(int)local_34 >> 2 == 0" (binary_expression "(int)local_34 >> 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) == number_literal) )) (compound_statement "{\n          iVar11 = 0;\n        }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" else (compound_statement "{\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" { (if_statement "if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }" if (parenthesized_expression "(0x3fffffff < (uint)((int)local_34 >> 2))" ( (binary_expression "0x3fffffff < (uint)((int)local_34 >> 2)" number_literal < (call_expression "(uint)((int)local_34 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_34 >> 2)" ( (binary_expression "(int)local_34 >> 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }" { comment comment (expression_statement "*(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;" (assignment_expression "*(undefined1 **)(puVar13 + -4) = &LAB_000b41bc" (pointer_expression "*(undefined1 **)(puVar13 + -4)" * (cast_expression "(undefined1 **)(puVar13 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = (pointer_expression "&LAB_000b41bc" & identifier)) ;) (expression_statement "FUN_00244870();" (call_expression "FUN_00244870()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint *)(puVar13 + -0x10) = local_34;" (assignment_expression "*(uint *)(puVar13 + -0x10) = local_34" (pointer_expression "*(uint *)(puVar13 + -0x10)" * (cast_expression "(uint *)(puVar13 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f51;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f51" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = FUN_001fd480();" (assignment_expression "iVar11 = FUN_001fd480()" identifier = (call_expression "FUN_001fd480()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "*piVar12 = iVar11;" (assignment_expression "*piVar12 = iVar11" (pointer_expression "*piVar12" * identifier) = identifier) ;) (expression_statement "piVar12[1] = iVar11;" (assignment_expression "piVar12[1] = iVar11" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar12[2] = local_34 + iVar11;" (assignment_expression "piVar12[2] = local_34 + iVar11" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = (binary_expression "local_34 + iVar11" identifier + identifier)) ;) (expression_statement "iVar4 = *local_28;" (assignment_expression "iVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "iVar7 = local_28[1] - iVar4;" (assignment_expression "iVar7 = local_28[1] - iVar4" identifier = (binary_expression "local_28[1] - iVar4" (subscript_expression "local_28[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "local_34 = iVar11;" (assignment_expression "local_34 = iVar11" identifier = identifier) ;) (if_statement "if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }" if (parenthesized_expression "(local_28[1] != iVar4)" ( (binary_expression "local_28[1] != iVar4" (subscript_expression "local_28[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }" { (expression_statement "*(int *)(puVar13 + -8) = iVar7;" (assignment_expression "*(int *)(puVar13 + -8) = iVar7" (pointer_expression "*(int *)(puVar13 + -8)" * (cast_expression "(int *)(puVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0xc) = iVar4;" (assignment_expression "*(int *)(puVar13 + -0xc) = iVar4" (pointer_expression "*(int *)(puVar13 + -0xc)" * (cast_expression "(int *)(puVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0x10) = iVar11;" (assignment_expression "*(int *)(puVar13 + -0x10) = iVar11" (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f87;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f87" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = iVar7;" (assignment_expression "local_38 = iVar7" identifier = identifier) ;) (expression_statement "memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));" (call_expression "memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8))" identifier (argument_list "(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8))" ( (pointer_expression "*(void **)(puVar13 + -0x10)" * (cast_expression "(void **)(puVar13 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(void **)(puVar13 + -0xc)" * (cast_expression "(void **)(puVar13 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar13 + -8)" * (cast_expression "(size_t *)(puVar13 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = local_38;" (assignment_expression "iVar7 = local_38" identifier = identifier) ;) })) (expression_statement "local_3c = local_3c + -1;" (assignment_expression "local_3c = local_3c + -1" identifier = (binary_expression "local_3c + -1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar12 + 3;" (assignment_expression "piVar8 = piVar12 + 3" identifier = (binary_expression "piVar12 + 3" identifier + number_literal)) ;) (expression_statement "piVar12[1] = local_34 + iVar7;" (assignment_expression "piVar12[1] = local_34 + iVar7" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = (binary_expression "local_34 + iVar7" identifier + identifier)) ;) (expression_statement "local_28 = local_28 + 3;" (assignment_expression "local_28 = local_28 + 3" identifier = (binary_expression "local_28 + 3" identifier + number_literal)) ;) (expression_statement "piVar12 = piVar8;" (assignment_expression "piVar12 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(local_40 != piVar8)" ( (binary_expression "local_40 != piVar8" identifier != identifier) )) ;) (expression_statement "iVar11 = piVar3[0x58];" (assignment_expression "iVar11 = piVar3[0x58]" identifier = (subscript_expression "piVar3[0x58]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x57] = piVar3[0x57];" (assignment_expression "local_24[0x57] = piVar3[0x57]" (subscript_expression "local_24[0x57]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x57]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x58] = iVar11;" (assignment_expression "local_24[0x58] = iVar11" (subscript_expression "local_24[0x58]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x59];" (assignment_expression "iVar11 = piVar3[0x59]" identifier = (subscript_expression "piVar3[0x59]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5a] = piVar3[0x5a];" (assignment_expression "local_24[0x5a] = piVar3[0x5a]" (subscript_expression "local_24[0x5a]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x5a]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar3[0x5c];" (assignment_expression "iVar4 = piVar3[0x5c]" identifier = (subscript_expression "piVar3[0x5c]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x59] = iVar11;" (assignment_expression "local_24[0x59] = iVar11" (subscript_expression "local_24[0x59]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x5b];" (assignment_expression "iVar11 = piVar3[0x5b]" identifier = (subscript_expression "piVar3[0x5b]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5c] = iVar4;" (assignment_expression "local_24[0x5c] = iVar4" (subscript_expression "local_24[0x5c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[0x5e];" (assignment_expression "iVar4 = piVar3[0x5e]" identifier = (subscript_expression "piVar3[0x5e]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5b] = iVar11;" (assignment_expression "local_24[0x5b] = iVar11" (subscript_expression "local_24[0x5b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x5d];" (assignment_expression "iVar11 = piVar3[0x5d]" identifier = (subscript_expression "piVar3[0x5d]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5e] = iVar4;" (assignment_expression "local_24[0x5e] = iVar4" (subscript_expression "local_24[0x5e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[0x60];" (assignment_expression "iVar4 = piVar3[0x60]" identifier = (subscript_expression "piVar3[0x60]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5d] = iVar11;" (assignment_expression "local_24[0x5d] = iVar11" (subscript_expression "local_24[0x5d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x5f];" (assignment_expression "iVar11 = piVar3[0x5f]" identifier = (subscript_expression "piVar3[0x5f]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x60] = iVar4;" (assignment_expression "local_24[0x60] = iVar4" (subscript_expression "local_24[0x60]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[0x62];" (assignment_expression "iVar4 = piVar3[0x62]" identifier = (subscript_expression "piVar3[0x62]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5f] = iVar11;" (assignment_expression "local_24[0x5f] = iVar11" (subscript_expression "local_24[0x5f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x61];" (assignment_expression "iVar11 = piVar3[0x61]" identifier = (subscript_expression "piVar3[0x61]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x62] = iVar4;" (assignment_expression "local_24[0x62] = iVar4" (subscript_expression "local_24[0x62]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[100];" (assignment_expression "iVar4 = piVar3[100]" identifier = (subscript_expression "piVar3[100]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x61] = iVar11;" (assignment_expression "local_24[0x61] = iVar11" (subscript_expression "local_24[0x61]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[99];" (assignment_expression "iVar11 = piVar3[99]" identifier = (subscript_expression "piVar3[99]" identifier [ number_literal ])) ;) (expression_statement "local_24[100] = iVar4;" (assignment_expression "local_24[100] = iVar4" (subscript_expression "local_24[100]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_24[99] = iVar11;" (assignment_expression "local_24[99] = iVar11" (subscript_expression "local_24[99]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_24[0x65] = piVar3[0x65];" (assignment_expression "local_24[0x65] = piVar3[0x65]" (subscript_expression "local_24[0x65]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x65]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x66] = piVar3[0x66];" (assignment_expression "local_24[0x66] = piVar3[0x66]" (subscript_expression "local_24[0x66]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x66]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = *(byte *)(local_24 + 0x67);" (assignment_expression "bVar1 = *(byte *)(local_24 + 0x67)" identifier = (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) ))))) ;) (expression_statement "bVar9 = *(byte *)(piVar3 + 0x67) & 1;" (assignment_expression "bVar9 = *(byte *)(piVar3 + 0x67) & 1" identifier = (binary_expression "*(byte *)(piVar3 + 0x67) & 1" (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xfe | bVar9" (binary_expression "bVar1 & 0xfe" identifier & number_literal) | identifier)) ;) (expression_statement "bVar10 = *(byte *)(piVar3 + 0x67) & 2;" (assignment_expression "bVar10 = *(byte *)(piVar3 + 0x67) & 2" identifier = (binary_expression "*(byte *)(piVar3 + 0x67) & 2" (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xfc | bVar9 | bVar10" (binary_expression "bVar1 & 0xfc | bVar9" (binary_expression "bVar1 & 0xfc" identifier & number_literal) | identifier) | identifier)) ;) (expression_statement "bVar2 = *(byte *)(piVar3 + 0x67);" (assignment_expression "bVar2 = *(byte *)(piVar3 + 0x67)" identifier = (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4" (binary_expression "bVar1 & 0xf8 | bVar9 | bVar10" (binary_expression "bVar1 & 0xf8 | bVar9" (binary_expression "bVar1 & 0xf8" identifier & number_literal) | identifier) | identifier) | (binary_expression "bVar2 & 4" identifier & number_literal))) ;) (expression_statement "*(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;" (assignment_expression "*(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8" (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4" (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10" (binary_expression "bVar1 & 0xf0 | bVar9" (binary_expression "bVar1 & 0xf0" identifier & number_literal) | identifier) | identifier) | (binary_expression "bVar2 & 4" identifier & number_literal)) | (binary_expression "*(byte *)(piVar3 + 0x67) & 8" (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "local_34 = param_2[1];" (assignment_expression "local_34 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_28 = (int *)((uint)piVar3 % local_34);" (assignment_expression "local_28 = (int *)((uint)piVar3 % local_34)" identifier = (cast_expression "(int *)((uint)piVar3 % local_34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar3 % local_34)" ( (binary_expression "(uint)piVar3 % local_34" (cast_expression "(uint)piVar3" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) )))) ;) (expression_statement "piVar12 = *(int **)(*param_2 + (int)local_28 * 4);" (assignment_expression "piVar12 = *(int **)(*param_2 + (int)local_28 * 4)" identifier = (pointer_expression "*(int **)(*param_2 + (int)local_28 * 4)" * (cast_expression "(int **)(*param_2 + (int)local_28 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + (int)local_28 * 4)" ( (binary_expression "*param_2 + (int)local_28 * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "(int)local_28 * 4" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }" { (expression_statement "piVar8 = (int *)((int *)*piVar12)[1];" (assignment_expression "piVar8 = (int *)((int *)*piVar12)[1]" identifier = (cast_expression "(int *)((int *)*piVar12)[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)*piVar12)[1]" (parenthesized_expression "((int *)*piVar12)" ( (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier)) )) [ number_literal ]))) ;) (expression_statement "piVar14 = (int *)*piVar12;" (assignment_expression "piVar14 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (while_statement "while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }" while (parenthesized_expression "(piVar3 != piVar8)" ( (binary_expression "piVar3 != piVar8" identifier != identifier) )) (compound_statement "{\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }" { (expression_statement "piVar5 = (int *)*piVar14;" (assignment_expression "piVar5 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;" if (parenthesized_expression "((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)))" ( (binary_expression "(piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))" (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))" ( (comma_expression "piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar8 = (int *)piVar5[1]" identifier = (cast_expression "(int *)piVar5[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[1]" identifier [ number_literal ]))) , (comma_expression "piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar12 = piVar14" identifier = identifier) , (comma_expression "piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar14 = piVar5" identifier = identifier) , (binary_expression "local_28 != (int *)((uint)piVar8 % local_34)" identifier != (cast_expression "(int *)((uint)piVar8 % local_34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar8 % local_34)" ( (binary_expression "(uint)piVar8 % local_34" (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) ))))))) ))) )) (goto_statement "goto LAB_000b4178;" goto statement_identifier ;)) })) (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (iVar11 != 0) goto LAB_000b414e;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b414e;" goto statement_identifier ;)) })) (labeled_statement "LAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;" statement_identifier : (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb4185;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb4185" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_001fd480();" (assignment_expression "puVar6 = (undefined4 *)FUN_001fd480()" identifier = (cast_expression "(undefined4 *)FUN_001fd480()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fd480()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = piVar3;" (assignment_expression "puVar6[1] = piVar3" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar13 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar13 + -0xc)" * (cast_expression "(undefined4 *)(puVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar13 + -0x10) = puVar6;" (assignment_expression "*(undefined4 **)(puVar13 + -0x10) = puVar6" (pointer_expression "*(undefined4 **)(puVar13 + -0x10)" * (cast_expression "(undefined4 **)(puVar13 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x14) = piVar3;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar3" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x18) = local_28;" (assignment_expression "*(int **)(puVar13 + -0x18) = local_28" (pointer_expression "*(int **)(puVar13 + -0x18)" * (cast_expression "(int **)(puVar13 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x1c) = param_2;" (assignment_expression "*(int **)(puVar13 + -0x1c) = param_2" (pointer_expression "*(int **)(puVar13 + -0x1c)" * (cast_expression "(int **)(puVar13 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x20) = local_44;" (assignment_expression "*(int **)(puVar13 + -0x20) = local_44" (pointer_expression "*(int **)(puVar13 + -0x20)" * (cast_expression "(int **)(puVar13 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0xb41a9;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0xb41a9" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000be1e0();" (call_expression "FUN_000be1e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puVar13 + -4;" (assignment_expression "puVar13 = puVar13 + -4" identifier = (binary_expression "puVar13 + -4" identifier + number_literal)) ;) (expression_statement "iVar11 = local_20[0];" (assignment_expression "iVar11 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_000b414e:\n      local_2c = local_2c + 1;" statement_identifier : (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;)) (expression_statement "*(int **)(iVar11 + 8) = local_24;" (assignment_expression "*(int **)(iVar11 + 8) = local_24" (pointer_expression "*(int **)(iVar11 + 8)" * (cast_expression "(int **)(iVar11 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(*(uint **)(param_1 + 0x128) != local_2c)" ( (binary_expression "*(uint **)(param_1 + 0x128) != local_2c" (pointer_expression "*(uint **)(param_1 + 0x128)" * (cast_expression "(uint **)(param_1 + 0x128)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(ERROR "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void save_segments(Layout * this, Segment_states * segment_states) */\n\nvoid __thiscall gold::Layout::save_segments(Layout *this,Segment_states *segment_states)\n\n{\n  byte bVar1;\n  Output_segment *__node;\n  anon_struct_4_0_00000001_for___align aVar2;\n  anon_struct_4_0_00000001_for___align __src;\n  _Hash_node_base *p_Var3;\n  uint uVar4;\n  undefined4 *__n_elt;\n  size_t __n;\n  Output_segment *pOVar5;\n  byte bVar6;\n  byte bVar7;\n  byte bVar8;\n  _Hash_node_base *p_Var9;\n  uint __code;\n  __bucket_type p_Var10;\n  _Hash_node_base *p_Var11;\n  _Hash_node_base *p_Var12;\n  __bucket_type p_Var13;\n  pointer local_2c;\n  Output_segment *local_28;\n  _Hash_node_base *local_20;\n  \n  local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;\n  if (local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish) {\n    do {\n      __node = *local_2c;\n      p_Var3 = (_Hash_node_base *)operator_new(0x1a0);\n      p_Var12 = p_Var3;\n      local_28 = __node;\n      do {\n        uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc();\n          }\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          p_Var9 = (_Hash_node_base *)operator_new(uVar4);\n        }\n        p_Var12->_M_nxt = p_Var9;\n        p_Var12[1]._M_nxt = p_Var9;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)(uVar4 + (int)p_Var9);\n        aVar2 = (((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->_M_storage)._M_storage.__align;\n        __src = (anon_struct_4_0_00000001_for___align)\n                (((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        __n = (int)aVar2 - (int)__src;\n        if (aVar2 != __src) {\n          memmove(p_Var9,(void *)__src,__n);\n        }\n        p_Var11 = p_Var12 + 3;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)((int)p_Var9 + __n);\n        local_28 = (Output_segment *)\n                   ((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                     *)local_28->output_lists_ + 1);\n        p_Var12 = p_Var11;\n      } while (p_Var3 + 0x57 != p_Var11);\n      p_Var12 = *(_Hash_node_base **)((int)&__node->vaddr_ + 4);\n      p_Var3[0x57]._M_nxt = *(_Hash_node_base **)&__node->vaddr_;\n      p_Var3[0x58]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->paddr_;\n      p_Var3[0x5a]._M_nxt = *(_Hash_node_base **)((int)&__node->paddr_ + 4);\n      p_Var9 = *(_Hash_node_base **)((int)&__node->memsz_ + 4);\n      p_Var3[0x59]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->memsz_;\n      p_Var3[0x5c]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->max_align_ + 4);\n      p_Var3[0x5b]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->max_align_;\n      p_Var3[0x5e]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->min_p_align_ + 4);\n      p_Var3[0x5d]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->min_p_align_;\n      p_Var3[0x60]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->offset_ + 4);\n      p_Var3[0x5f]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->offset_;\n      p_Var3[0x62]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->filesz_ + 4);\n      p_Var3[0x61]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->filesz_;\n      p_Var3[100]._M_nxt = p_Var9;\n      p_Var3[99]._M_nxt = p_Var12;\n      p_Var3[0x65]._M_nxt = (_Hash_node_base *)__node->type_;\n      p_Var3[0x66]._M_nxt = (_Hash_node_base *)__node->flags_;\n      bVar1 = *(byte *)&p_Var3[0x67]._M_nxt;\n      bVar6 = __node->field_0x19c & 1;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6;\n      bVar7 = __node->field_0x19c & 2;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7;\n      bVar8 = __node->field_0x19c & 4;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8\n      ;\n      uVar4 = (segment_states->_M_h)._M_bucket_count;\n      __code = (uint)__node % uVar4;\n      p_Var10 = (segment_states->_M_h)._M_buckets[__code];\n      if (p_Var10 != (__bucket_type)0x0) {\n        pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt;\n        p_Var13 = p_Var10->_M_nxt;\n        while (__node != pOVar5) {\n          p_Var12 = p_Var13->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;\n        }\n        p_Var12 = p_Var10->_M_nxt;\n        if (p_Var12 != (_Hash_node_base *)0x0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      __n_elt = (undefined4 *)operator_new(0xc);\n      *__n_elt = 0;\n      __n_elt[1] = __node;\n      __n_elt[2] = 0;\n      std::\n      _Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n      ::_M_insert_unique_node\n                ((_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt);\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      p_Var12[2]._M_nxt = p_Var3;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_2c);\n  }\n  return;\n}\n\n" comment comment comment primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "save_segments(Layout *this,Segment_states *segment_states)" identifier (parameter_list "(Layout *this,Segment_states *segment_states)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Segment_states *segment_states" type_identifier (pointer_declarator "*segment_states" * identifier)) ))) { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "Output_segment *__node;" type_identifier (pointer_declarator "*__node" * identifier) ;) (declaration "anon_struct_4_0_00000001_for___align aVar2;" type_identifier identifier ;) (declaration "anon_struct_4_0_00000001_for___align __src;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "undefined4 *__n_elt;" type_identifier (pointer_declarator "*__n_elt" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "Output_segment *pOVar5;" type_identifier (pointer_declarator "*pOVar5" * identifier) ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "byte bVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var9;" type_identifier (pointer_declarator "*p_Var9" * identifier) ;) (declaration "uint __code;" type_identifier identifier ;) (declaration "__bucket_type p_Var10;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "_Hash_node_base *p_Var12;" type_identifier (pointer_declarator "*p_Var12" * identifier) ;) (declaration "__bucket_type p_Var13;" type_identifier identifier ;) (declaration "pointer local_2c;" type_identifier identifier ;) (declaration "Output_segment *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "_Hash_node_base *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start;" (field_expression "local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_start" (field_expression "local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "local_2c = (this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (assignment_expression "local_2c = (this->segment_list_).\n             super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) if (parenthesized_expression "(local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish)" ( (field_expression "local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n      _M_finish" (field_expression "local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold::Output_segment*,_std" (binary_expression "local_2c !=\n      (this->segment_list_).\n      super__Vector_base<gold" identifier != (binary_expression "(this->segment_list_).\n      super__Vector_base<gold" (field_expression "(this->segment_list_).\n      super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) )) { do { (expression_statement "__node = *local_2c;" (assignment_expression "__node = *local_2c" identifier = (pointer_expression "*local_2c" * identifier)) ;) (expression_statement "p_Var3 = (_Hash_node_base *)operator_new(0x1a0);" (assignment_expression "p_Var3 = (_Hash_node_base *)operator_new(0x1a0)" identifier = (cast_expression "(_Hash_node_base *)operator_new(0x1a0)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x1a0)" identifier (argument_list "(0x1a0)" ( number_literal ))))) ;) (expression_statement "p_Var12 = p_Var3;" (assignment_expression "p_Var12 = p_Var3" identifier = identifier) ;) (expression_statement "local_28 = __node;" (assignment_expression "local_28 = __node" identifier = identifier) ;) do (ERROR "{\n        uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc();\n          }\n                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */\n          p_Var9 = (_Hash_node_base *)operator_new(uVar4);\n        }\n        p_Var12->_M_nxt = p_Var9;\n        p_Var12[1]._M_nxt = p_Var9;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)(uVar4 + (int)p_Var9);" (compound_statement "{\n        uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc();\n          }" { (expression_statement "uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc();" (assignment_expression "uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc()" identifier = (cast_expression "(int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc()" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc()" ( (binary_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -\n                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc()" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage.__align" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)._M_storage" (parenthesized_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage)" ( (field_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->_M_storage" (parenthesized_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)" ( (ERROR "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::" (comma_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold" (binary_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const" (binary_expression "_Hash_node_value_base<std::pair<const_gold" (binary_expression "_Hash_node_value_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * identifier) , identifier) : :) (binary_expression "Output_segment*>_>\n                        *)local_28->output_lists_" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)local_28->output_lists_" * (ERROR ")" )) (field_expression "local_28->output_lists_" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) . field_identifier) - (cast_expression "(int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc()" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc()" ( (call_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)uVar4 >> 2))" (assignment_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0) {\n          p_Var9 = (_Hash_node_base *)0x0" (call_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;\n        if ((int)uVar4 >> 2 == 0)" (assignment_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]._M_nxt" (subscript_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[2]" (assignment_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]._M_nxt" (subscript_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0;\n        p_Var12[1]" (assignment_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt = (_Hash_node_base *)0x0" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        p_Var12->_M_nxt" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt" (parenthesized_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base)" ( (field_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)->super__Hash_node_base" (parenthesized_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                        *)local_28->output_lists_)" ( (ERROR "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::" (comma_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold" (binary_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const" (binary_expression "_Hash_node_value_base<std::pair<const_gold" (binary_expression "_Hash_node_value_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * identifier) , identifier) : :) (binary_expression "Output_segment*>_>\n                        *)local_28->output_lists_" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)local_28->output_lists_" * (ERROR ")" )) (field_expression "local_28->output_lists_" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) (ERROR ";\n        p_Var12" ; identifier) -> field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";\n        p_Var12" ; identifier) [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";\n        p_Var12" ; identifier) [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";\n        if" ; if) (argument_list "((int)uVar4 >> 2 == 0)" ( (binary_expression "(int)uVar4 >> 2 == 0" (binary_expression "(int)uVar4 >> 2" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) == number_literal) ))) (ERROR "{\n          p_Var9" { identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) (ERROR ";\n        }\n        else {\n          if" ; } else { if) (argument_list "(0x3fffffff < (uint)((int)uVar4 >> 2))" ( (binary_expression "0x3fffffff < (uint)((int)uVar4 >> 2)" number_literal < (call_expression "(uint)((int)uVar4 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar4 >> 2)" ( (binary_expression "(int)uVar4 >> 2" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ))) (ERROR "{\n                    /* WARNING: Subroutine does not return */\n                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */\n            std::__throw_bad_alloc(" { comment comment identifier : : identifier () )))) )))) ;) }) comment identifier = ( identifier * ) identifier ( identifier ) ; } identifier -> identifier = identifier ; identifier [ number_literal ] . identifier = identifier ; (expression_statement "p_Var12[2]._M_nxt = (_Hash_node_base *)(uVar4 + (int)p_Var9);" (assignment_expression "p_Var12[2]._M_nxt = (_Hash_node_base *)(uVar4 + (int)p_Var9)" (field_expression "p_Var12[2]._M_nxt" (subscript_expression "p_Var12[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)(uVar4 + (int)p_Var9)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + (int)p_Var9)" ( (binary_expression "uVar4 + (int)p_Var9" identifier + (cast_expression "(int)p_Var9" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) identifier = ( (call_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->_M_storage)._M_storage.__align;\n        __src = (anon_struct_4_0_00000001_for___align)" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->_M_storage)._M_storage.__align" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->_M_storage)._M_storage" (parenthesized_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->_M_storage)" ( (field_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->_M_storage" (parenthesized_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)" ( (ERROR "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::" (comma_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold" (binary_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const" (binary_expression "_Hash_node_value_base<std::pair<const_gold" (binary_expression "_Hash_node_value_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * identifier) , identifier) : :) (binary_expression "Output_segment*>_>\n                   *)local_28->output_lists_" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)local_28->output_lists_" * (ERROR ")" )) (field_expression "local_28->output_lists_" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) . field_identifier) (ERROR ";\n        __src =" ; identifier =) (argument_list "(anon_struct_4_0_00000001_for___align)" ( identifier ))) ( (ERROR "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;\n        __n = (int)aVar2 - (int)__src;\n        if (aVar2 != __src) {\n          memmove(p_Var9,(void *)__src,__n);\n        }\n        p_Var11 = p_Var12 + 3;\n        p_Var12[1]._M_nxt = (_Hash_node_base *)((int)p_Var9 + __n);" (field_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->super__Hash_node_base)._M_nxt" (parenthesized_expression "((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->super__Hash_node_base)" ( (field_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)->super__Hash_node_base" (parenthesized_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                   *)local_28->output_lists_)" ( (ERROR "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::" (comma_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold" (binary_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const" (binary_expression "_Hash_node_value_base<std::pair<const_gold" (binary_expression "_Hash_node_value_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * identifier) , identifier) : :) (binary_expression "Output_segment*>_>\n                   *)local_28->output_lists_" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (pointer_expression "*)local_28->output_lists_" * (ERROR ")" )) (field_expression "local_28->output_lists_" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) ; (call_expression "__n = (int)aVar2 - (int)__src;\n        if (aVar2 != __src)" (assignment_expression "__n = (int)aVar2 - (int)__src" identifier = (binary_expression "(int)aVar2 - (int)__src" (cast_expression "(int)aVar2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)__src" ( (type_descriptor "int" primitive_type) ) identifier))) (ERROR ";\n        if" ; if) (argument_list "(aVar2 != __src)" ( (binary_expression "aVar2 != __src" identifier != identifier) ))) (compound_statement "{\n          memmove(p_Var9,(void *)__src,__n);\n        }" { (expression_statement "memmove(p_Var9,(void *)__src,__n);" (call_expression "memmove(p_Var9,(void *)__src,__n)" identifier (argument_list "(p_Var9,(void *)__src,__n)" ( identifier , (cast_expression "(void *)__src" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }) (assignment_expression "p_Var11 = p_Var12 + 3" identifier = (binary_expression "p_Var12 + 3" identifier + number_literal)) ; (assignment_expression "p_Var12[1]._M_nxt = (_Hash_node_base *)((int)p_Var9 + __n)" (field_expression "p_Var12[1]._M_nxt" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)((int)p_Var9 + __n)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)p_Var9 + __n)" ( (binary_expression "(int)p_Var9 + __n" (cast_expression "(int)p_Var9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) identifier = ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) ( (ERROR "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                     *)local_28->output_lists_ + 1);\n        p_Var12 = p_Var11;\n      } while (p_Var3 + 0x57 != p_Var11);\n      p_Var12 = *(_Hash_node_base **)((int)&__node->vaddr_ + 4);\n      p_Var3[0x57]._M_nxt = *(_Hash_node_base **)&__node->vaddr_;\n      p_Var3[0x58]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->paddr_;\n      p_Var3[0x5a]._M_nxt = *(_Hash_node_base **)((int)&__node->paddr_ + 4);\n      p_Var9 = *(_Hash_node_base **)((int)&__node->memsz_ + 4);\n      p_Var3[0x59]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->memsz_;\n      p_Var3[0x5c]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->max_align_ + 4);\n      p_Var3[0x5b]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->max_align_;\n      p_Var3[0x5e]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->min_p_align_ + 4);\n      p_Var3[0x5d]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->min_p_align_;\n      p_Var3[0x60]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->offset_ + 4);\n      p_Var3[0x5f]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->offset_;\n      p_Var3[0x62]._M_nxt = p_Var9;\n      p_Var9 = *(_Hash_node_base **)((int)&__node->filesz_ + 4);\n      p_Var3[0x61]._M_nxt = p_Var12;\n      p_Var12 = *(_Hash_node_base **)&__node->filesz_;\n      p_Var3[100]._M_nxt = p_Var9;\n      p_Var3[99]._M_nxt = p_Var12;\n      p_Var3[0x65]._M_nxt = (_Hash_node_base *)__node->type_;\n      p_Var3[0x66]._M_nxt = (_Hash_node_base *)__node->flags_;\n      bVar1 = *(byte *)&p_Var3[0x67]._M_nxt;\n      bVar6 = __node->field_0x19c & 1;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6;\n      bVar7 = __node->field_0x19c & 2;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7;\n      bVar8 = __node->field_0x19c & 4;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8\n      ;\n      uVar4 = (segment_states->_M_h)._M_bucket_count;\n      __code = (uint)__node % uVar4;\n      p_Var10 = (segment_states->_M_h)._M_buckets[__code];\n      if (p_Var10 != (__bucket_type)0x0) {\n        pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt;\n        p_Var13 = p_Var10->_M_nxt;\n        while (__node != pOVar5) {\n          p_Var12 = p_Var13->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;\n        }\n        p_Var12 = p_Var10->_M_nxt;\n        if (p_Var12 != (_Hash_node_base *)0x0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      __n_elt = (undefined4 *)operator_new(0xc);\n      *__n_elt = 0;\n      __n_elt[1] = __node;\n      __n_elt[2] = 0;\n      std::\n      _Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (parenthesized_expression "(_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>\n                     *)local_28->output_lists_ + 1)" ( (ERROR "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::" (comma_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold" (binary_expression "_Hash_node_value_base<std::pair<const_gold::Output_segment*_const" (binary_expression "_Hash_node_value_base<std::pair<const_gold" (binary_expression "_Hash_node_value_base<std" identifier < identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * identifier) , identifier) : :) (binary_expression "Output_segment*>_>\n                     *)local_28->output_lists_ + 1" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (binary_expression "*)local_28->output_lists_ + 1" (pointer_expression "*)local_28->output_lists_" * (ERROR ")" )) (field_expression "local_28->output_lists_" identifier -> field_identifier)) + number_literal)) )) ; (call_expression "p_Var12 = p_Var11;\n      } while (p_Var3 + 0x57 != p_Var11)" (assignment_expression "p_Var12 = p_Var11" identifier = identifier) (ERROR ";\n      } while" ; } while) (argument_list "(p_Var3 + 0x57 != p_Var11)" ( (binary_expression "p_Var3 + 0x57 != p_Var11" (binary_expression "p_Var3 + 0x57" identifier + number_literal) != identifier) ))) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)((int)&__node->vaddr_ + 4)" identifier = (pointer_expression "*(_Hash_node_base **)((int)&__node->vaddr_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->vaddr_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->vaddr_ + 4)" ( (binary_expression "(int)&__node->vaddr_ + 4" (cast_expression "(int)&__node->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->vaddr_" & (field_expression "__node->vaddr_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var3[0x57]._M_nxt = *(_Hash_node_base **)&__node->vaddr_" (field_expression "p_Var3[0x57]._M_nxt" (subscript_expression "p_Var3[0x57]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(_Hash_node_base **)&__node->vaddr_" * (cast_expression "(_Hash_node_base **)&__node->vaddr_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->vaddr_" & (field_expression "__node->vaddr_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[0x58]._M_nxt = p_Var12" (field_expression "p_Var3[0x58]._M_nxt" (subscript_expression "p_Var3[0x58]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)&__node->paddr_" identifier = (pointer_expression "*(_Hash_node_base **)&__node->paddr_" * (cast_expression "(_Hash_node_base **)&__node->paddr_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->paddr_" & (field_expression "__node->paddr_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[0x5a]._M_nxt = *(_Hash_node_base **)((int)&__node->paddr_ + 4)" (field_expression "p_Var3[0x5a]._M_nxt" (subscript_expression "p_Var3[0x5a]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(_Hash_node_base **)((int)&__node->paddr_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->paddr_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->paddr_ + 4)" ( (binary_expression "(int)&__node->paddr_ + 4" (cast_expression "(int)&__node->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->paddr_" & (field_expression "__node->paddr_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var9 = *(_Hash_node_base **)((int)&__node->memsz_ + 4)" identifier = (pointer_expression "*(_Hash_node_base **)((int)&__node->memsz_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->memsz_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->memsz_ + 4)" ( (binary_expression "(int)&__node->memsz_ + 4" (cast_expression "(int)&__node->memsz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->memsz_" & (field_expression "__node->memsz_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var3[0x59]._M_nxt = p_Var12" (field_expression "p_Var3[0x59]._M_nxt" (subscript_expression "p_Var3[0x59]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)&__node->memsz_" identifier = (pointer_expression "*(_Hash_node_base **)&__node->memsz_" * (cast_expression "(_Hash_node_base **)&__node->memsz_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->memsz_" & (field_expression "__node->memsz_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[0x5c]._M_nxt = p_Var9" (field_expression "p_Var3[0x5c]._M_nxt" (subscript_expression "p_Var3[0x5c]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var9 = *(_Hash_node_base **)((int)&__node->max_align_ + 4)" identifier = (pointer_expression "*(_Hash_node_base **)((int)&__node->max_align_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->max_align_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->max_align_ + 4)" ( (binary_expression "(int)&__node->max_align_ + 4" (cast_expression "(int)&__node->max_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->max_align_" & (field_expression "__node->max_align_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var3[0x5b]._M_nxt = p_Var12" (field_expression "p_Var3[0x5b]._M_nxt" (subscript_expression "p_Var3[0x5b]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)&__node->max_align_" identifier = (pointer_expression "*(_Hash_node_base **)&__node->max_align_" * (cast_expression "(_Hash_node_base **)&__node->max_align_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->max_align_" & (field_expression "__node->max_align_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[0x5e]._M_nxt = p_Var9" (field_expression "p_Var3[0x5e]._M_nxt" (subscript_expression "p_Var3[0x5e]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var9 = *(_Hash_node_base **)((int)&__node->min_p_align_ + 4)" identifier = (pointer_expression "*(_Hash_node_base **)((int)&__node->min_p_align_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->min_p_align_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->min_p_align_ + 4)" ( (binary_expression "(int)&__node->min_p_align_ + 4" (cast_expression "(int)&__node->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->min_p_align_" & (field_expression "__node->min_p_align_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var3[0x5d]._M_nxt = p_Var12" (field_expression "p_Var3[0x5d]._M_nxt" (subscript_expression "p_Var3[0x5d]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)&__node->min_p_align_" identifier = (pointer_expression "*(_Hash_node_base **)&__node->min_p_align_" * (cast_expression "(_Hash_node_base **)&__node->min_p_align_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->min_p_align_" & (field_expression "__node->min_p_align_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[0x60]._M_nxt = p_Var9" (field_expression "p_Var3[0x60]._M_nxt" (subscript_expression "p_Var3[0x60]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var9 = *(_Hash_node_base **)((int)&__node->offset_ + 4)" identifier = (pointer_expression "*(_Hash_node_base **)((int)&__node->offset_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->offset_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->offset_ + 4)" ( (binary_expression "(int)&__node->offset_ + 4" (cast_expression "(int)&__node->offset_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->offset_" & (field_expression "__node->offset_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var3[0x5f]._M_nxt = p_Var12" (field_expression "p_Var3[0x5f]._M_nxt" (subscript_expression "p_Var3[0x5f]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)&__node->offset_" identifier = (pointer_expression "*(_Hash_node_base **)&__node->offset_" * (cast_expression "(_Hash_node_base **)&__node->offset_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->offset_" & (field_expression "__node->offset_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[0x62]._M_nxt = p_Var9" (field_expression "p_Var3[0x62]._M_nxt" (subscript_expression "p_Var3[0x62]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var9 = *(_Hash_node_base **)((int)&__node->filesz_ + 4)" identifier = (pointer_expression "*(_Hash_node_base **)((int)&__node->filesz_ + 4)" * (cast_expression "(_Hash_node_base **)((int)&__node->filesz_ + 4)" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&__node->filesz_ + 4)" ( (binary_expression "(int)&__node->filesz_ + 4" (cast_expression "(int)&__node->filesz_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__node->filesz_" & (field_expression "__node->filesz_" identifier -> field_identifier))) + number_literal) ))))) ; (assignment_expression "p_Var3[0x61]._M_nxt = p_Var12" (field_expression "p_Var3[0x61]._M_nxt" (subscript_expression "p_Var3[0x61]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var12 = *(_Hash_node_base **)&__node->filesz_" identifier = (pointer_expression "*(_Hash_node_base **)&__node->filesz_" * (cast_expression "(_Hash_node_base **)&__node->filesz_" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&__node->filesz_" & (field_expression "__node->filesz_" identifier -> field_identifier))))) ; (assignment_expression "p_Var3[100]._M_nxt = p_Var9" (field_expression "p_Var3[100]._M_nxt" (subscript_expression "p_Var3[100]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var3[99]._M_nxt = p_Var12" (field_expression "p_Var3[99]._M_nxt" (subscript_expression "p_Var3[99]" identifier [ number_literal ]) . field_identifier) = identifier) ; (assignment_expression "p_Var3[0x65]._M_nxt = (_Hash_node_base *)__node->type_" (field_expression "p_Var3[0x65]._M_nxt" (subscript_expression "p_Var3[0x65]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)__node->type_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__node->type_" identifier -> field_identifier))) ; (assignment_expression "p_Var3[0x66]._M_nxt = (_Hash_node_base *)__node->flags_" (field_expression "p_Var3[0x66]._M_nxt" (subscript_expression "p_Var3[0x66]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)__node->flags_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__node->flags_" identifier -> field_identifier))) ; (assignment_expression "bVar1 = *(byte *)&p_Var3[0x67]._M_nxt" identifier = (pointer_expression "*(byte *)&p_Var3[0x67]._M_nxt" * (cast_expression "(byte *)&p_Var3[0x67]._M_nxt" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var3[0x67]._M_nxt" & (field_expression "p_Var3[0x67]._M_nxt" (subscript_expression "p_Var3[0x67]" identifier [ number_literal ]) . field_identifier))))) ; (binary_expression "bVar6 = __node->field_0x19c & 1;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6" (assignment_expression "bVar6 = __node->field_0x19c & 1" identifier = (binary_expression "__node->field_0x19c & 1" (field_expression "__node->field_0x19c" identifier -> field_identifier) & number_literal)) (ERROR ";" ;) * (cast_expression "(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6" (pointer_expression "&p_Var3[0x67]._M_nxt" & (field_expression "p_Var3[0x67]._M_nxt" (subscript_expression "p_Var3[0x67]" identifier [ number_literal ]) . field_identifier)) = (binary_expression "bVar1 & 0xfe | bVar6" (binary_expression "bVar1 & 0xfe" identifier & number_literal) | identifier)))) ; (binary_expression "bVar7 = __node->field_0x19c & 2;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7" (assignment_expression "bVar7 = __node->field_0x19c & 2" identifier = (binary_expression "__node->field_0x19c & 2" (field_expression "__node->field_0x19c" identifier -> field_identifier) & number_literal)) (ERROR ";" ;) * (cast_expression "(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7" (pointer_expression "&p_Var3[0x67]._M_nxt" & (field_expression "p_Var3[0x67]._M_nxt" (subscript_expression "p_Var3[0x67]" identifier [ number_literal ]) . field_identifier)) = (binary_expression "bVar1 & 0xfc | bVar6 | bVar7" (binary_expression "bVar1 & 0xfc | bVar6" (binary_expression "bVar1 & 0xfc" identifier & number_literal) | identifier) | identifier)))) ; (binary_expression "bVar8 = __node->field_0x19c & 4;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8" (binary_expression "bVar8 = __node->field_0x19c & 4;\n      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8" (assignment_expression "bVar8 = __node->field_0x19c & 4" identifier = (binary_expression "__node->field_0x19c & 4" (field_expression "__node->field_0x19c" identifier -> field_identifier) & number_literal)) (ERROR ";" ;) * (cast_expression "(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8" (pointer_expression "&p_Var3[0x67]._M_nxt" & (field_expression "p_Var3[0x67]._M_nxt" (subscript_expression "p_Var3[0x67]" identifier [ number_literal ]) . field_identifier)) = (binary_expression "bVar1 & 0xf8 | bVar6 | bVar7 | bVar8" (binary_expression "bVar1 & 0xf8 | bVar6 | bVar7" (binary_expression "bVar1 & 0xf8 | bVar6" (binary_expression "bVar1 & 0xf8" identifier & number_literal) | identifier) | identifier) | identifier)))) (ERROR ";" ;) * (cast_expression "(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (assignment_expression "&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8" (pointer_expression "&p_Var3[0x67]._M_nxt" & (field_expression "p_Var3[0x67]._M_nxt" (subscript_expression "p_Var3[0x67]" identifier [ number_literal ]) . field_identifier)) = (binary_expression "bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8" (binary_expression "bVar1 & 0xf0 | bVar6 | bVar7 | bVar8" (binary_expression "bVar1 & 0xf0 | bVar6 | bVar7" (binary_expression "bVar1 & 0xf0 | bVar6" (binary_expression "bVar1 & 0xf0" identifier & number_literal) | identifier) | identifier) | identifier) | (binary_expression "__node->field_0x19c & 8" (field_expression "__node->field_0x19c" identifier -> field_identifier) & number_literal))))) ; (assignment_expression "uVar4 = (segment_states->_M_h)._M_bucket_count" identifier = (field_expression "(segment_states->_M_h)._M_bucket_count" (parenthesized_expression "(segment_states->_M_h)" ( (field_expression "segment_states->_M_h" identifier -> field_identifier) )) . field_identifier)) ; (assignment_expression "__code = (uint)__node % uVar4" identifier = (binary_expression "(uint)__node % uVar4" (cast_expression "(uint)__node" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ; (call_expression "p_Var10 = (segment_states->_M_h)._M_buckets[__code];\n      if (p_Var10 != (__bucket_type)0x0)" (assignment_expression "p_Var10 = (segment_states->_M_h)._M_buckets[__code]" identifier = (subscript_expression "(segment_states->_M_h)._M_buckets[__code]" (field_expression "(segment_states->_M_h)._M_buckets" (parenthesized_expression "(segment_states->_M_h)" ( (field_expression "segment_states->_M_h" identifier -> field_identifier) )) . field_identifier) [ identifier ])) (ERROR ";\n      if" ; if) (argument_list "(p_Var10 != (__bucket_type)0x0)" ( (binary_expression "p_Var10 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ))) (compound_statement "{\n        pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt;\n        p_Var13 = p_Var10->_M_nxt;\n        while (__node != pOVar5) {\n          p_Var12 = p_Var13->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;\n        }\n        p_Var12 = p_Var10->_M_nxt;\n        if (p_Var12 != (_Hash_node_base *)0x0) goto LAB_000b414e;\n      }" { (expression_statement "pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt;" (assignment_expression "pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt" identifier = (cast_expression "(Output_segment *)p_Var10->_M_nxt[1]._M_nxt" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var10->_M_nxt[1]._M_nxt" (subscript_expression "p_Var10->_M_nxt[1]" (field_expression "p_Var10->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier))) ;) (expression_statement "p_Var13 = p_Var10->_M_nxt;" (assignment_expression "p_Var13 = p_Var10->_M_nxt" identifier = (field_expression "p_Var10->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (__node != pOVar5) {\n          p_Var12 = p_Var13->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;\n        }" while (parenthesized_expression "(__node != pOVar5)" ( (binary_expression "__node != pOVar5" identifier != identifier) )) (compound_statement "{\n          p_Var12 = p_Var13->_M_nxt;\n          if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;\n        }" { (expression_statement "p_Var12 = p_Var13->_M_nxt;" (assignment_expression "p_Var12 = p_Var13->_M_nxt" identifier = (field_expression "p_Var13->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;" if (parenthesized_expression "((p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4))" ( (binary_expression "(p_Var12 == (_Hash_node_base *)0x0) ||\n             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)" (parenthesized_expression "(p_Var12 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4)" ( (comma_expression "pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4" (assignment_expression "pOVar5 = (Output_segment *)p_Var12[1]._M_nxt" identifier = (cast_expression "(Output_segment *)p_Var12[1]._M_nxt" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var12[1]._M_nxt" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier))) , (comma_expression "p_Var10 = p_Var13, p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4" (assignment_expression "p_Var10 = p_Var13" identifier = identifier) , (comma_expression "p_Var13 = p_Var12,\n             __code != (uint)pOVar5 % uVar4" (assignment_expression "p_Var13 = p_Var12" identifier = identifier) , (binary_expression "__code != (uint)pOVar5 % uVar4" identifier != (binary_expression "(uint)pOVar5 % uVar4" (cast_expression "(uint)pOVar5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))))) ))) )) (goto_statement "goto LAB_000b4178;" goto statement_identifier ;)) })) (expression_statement "p_Var12 = p_Var10->_M_nxt;" (assignment_expression "p_Var12 = p_Var10->_M_nxt" identifier = (field_expression "p_Var10->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if (p_Var12 != (_Hash_node_base *)0x0) goto LAB_000b414e;" if (parenthesized_expression "(p_Var12 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b414e;" goto statement_identifier ;)) }) identifier : (binary_expression "__n_elt = (undefined4 *)operator_new(0xc);\n      *__n_elt = 0" (assignment_expression "__n_elt = (undefined4 *)operator_new(0xc)" identifier = (cast_expression "(undefined4 *)operator_new(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) (ERROR ";" ;) * (assignment_expression "__n_elt = 0" identifier = number_literal)) ; (assignment_expression "__n_elt[1] = __node" (subscript_expression "__n_elt[1]" identifier [ number_literal ]) = identifier) ; (assignment_expression "__n_elt[2] = 0" (subscript_expression "__n_elt[2]" identifier [ number_literal ]) = number_literal) ; identifier : : (binary_expression "_Hashtable<const_gold" identifier < identifier) : : (type_descriptor "Output_segment*" type_identifier (abstract_pointer_declarator "*" *)) , identifier : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Output_segment*_const,_const_gold" (binary_expression "Output_segment*_const" identifier * identifier) , identifier) : : (comma_expression "Output_segment*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Output_segment*_const,_const_gold" (binary_expression "Output_segment*_const" identifier * identifier) , identifier) : : (binary_expression "Output_segment*>_>,_std" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<const_gold" identifier < identifier) : : (comma_expression "Output_segment*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "hash<const_gold" identifier < identifier) : : (comma_expression "Output_segment*>,_std" identifier (ERROR "*>" * >) , 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 : :) (binary_expression "_Hashtable_traits<false" identifier < false) , identifier , (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier ( (call_expression "(_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt);\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      p_Var12[2]._M_nxt = p_Var3;\n    } while ((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_2c)" (assignment_expression "(_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt);\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      p_Var12[2]._M_nxt = p_Var3" (field_expression "(_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt);\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      p_Var12[2]._M_nxt" (subscript_expression "(_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt);\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      p_Var12[2]" (binary_expression "(_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt);\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c + 1" (parenthesized_expression "(_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt)" ( (ERROR "_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold" (binary_expression "_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const" (binary_expression "_Hashtable<const_gold::Output_segment*,_std::pair<const_gold" (binary_expression "_Hashtable<const_gold::Output_segment*,_std" (binary_expression "_Hashtable<const_gold" identifier < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::pair" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * identifier) , identifier) : : (comma_expression "Output_segment*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Output_segment*_const,_const_gold" (binary_expression "Output_segment*_const" identifier * identifier) , identifier) : : (binary_expression "Output_segment*>_>,_std" (binary_expression "Output_segment*>_" identifier * (ERROR ">" >) identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<const_gold" identifier < identifier) : : (comma_expression "Output_segment*>,_std" identifier (ERROR "*>" * >) , identifier) : : (binary_expression "hash<const_gold" identifier < identifier) : : (comma_expression "Output_segment*>,_std" identifier (ERROR "*>" * >) , 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<false,_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt" identifier , (comma_expression "_true>_>\n                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt" (binary_expression "_true>_>\n                  *)&local_20" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)&local_20" * (ERROR ")" )) (pointer_expression "&local_20" & identifier))) , (comma_expression "(size_type)segment_states,__code,(__node_type *)__node,\n                 (size_type)__n_elt" (cast_expression "(size_type)segment_states" ( (type_descriptor "size_type" type_identifier) ) identifier) , (comma_expression "__code,(__node_type *)__node,\n                 (size_type)__n_elt" identifier , (comma_expression "(__node_type *)__node,\n                 (size_type)__n_elt" (cast_expression "(__node_type *)__node" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_type)__n_elt" ( (type_descriptor "size_type" type_identifier) ) identifier))))))) )) (ERROR ";\n      p_Var12 = local_20;\nLAB_000b414e:\n      local_2c = local_2c" ; identifier = identifier ; identifier : identifier = identifier) + number_literal) (ERROR ";\n      p_Var12" ; identifier) [ number_literal ]) . field_identifier) = identifier) (ERROR ";\n    } while" ; } while) (argument_list "((this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_2c)" ( (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish != local_2c" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl._M_finish" (field_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n             _M_impl" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n             super__Vector_base<gold" (field_expression "(this->segment_list_).\n             super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) ))) ; } return ; })
(translation_unit "void FUN_000b3ec0(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}\n\n" (function_definition "void FUN_000b3ec0(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000b3ec0(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int aiStack_70 [9];" primitive_type (array_declarator "aiStack_70 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_4c [8];" type_identifier (array_declarator "auStack_4c [8]" identifier [ number_literal ]) ;) (declaration "int *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "int *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "undefined **local_30;" type_identifier (pointer_declarator "**local_30" * (pointer_declarator "*local_30" * identifier)) ;) (declaration "uint *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int *local_24;" primitive_type (pointer_declarator "*local_24" * identifier) ;) (declaration "int local_20 [4];" primitive_type (array_declarator "local_20 [4]" identifier [ number_literal ]) ;) (expression_statement "local_30 = &__DT_PLTGOT;" (assignment_expression "local_30 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_44 = local_20;" (assignment_expression "local_44 = local_20" identifier = identifier) ;) (expression_statement "puVar13 = auStack_4c;" (assignment_expression "puVar13 = auStack_4c" identifier = identifier) ;) (expression_statement "local_2c = *(uint **)(param_1 + 0x124);" (assignment_expression "local_2c = *(uint **)(param_1 + 0x124)" identifier = (pointer_expression "*(uint **)(param_1 + 0x124)" * (cast_expression "(uint **)(param_1 + 0x124)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (if_statement "if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }" if (parenthesized_expression "(local_2c != *(uint **)(param_1 + 0x128))" ( (binary_expression "local_2c != *(uint **)(param_1 + 0x128)" identifier != (pointer_expression "*(uint **)(param_1 + 0x128)" * (cast_expression "(uint **)(param_1 + 0x128)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }" { (do_statement "do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);" do (compound_statement "{\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    }" { (expression_statement "piVar3 = (int *)*local_2c;" (assignment_expression "piVar3 = (int *)*local_2c" identifier = (cast_expression "(int *)*local_2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_2c" * identifier))) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0x1a0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0x1a0" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f15;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f15" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_24 = (int *)FUN_001fd480();" (assignment_expression "local_24 = (int *)FUN_001fd480()" identifier = (cast_expression "(int *)FUN_001fd480()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fd480()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_40 = local_24 + 0x57;" (assignment_expression "local_40 = local_24 + 0x57" identifier = (binary_expression "local_24 + 0x57" identifier + number_literal)) ;) (expression_statement "local_3c = 0x1c;" (assignment_expression "local_3c = 0x1c" identifier = number_literal) ;) (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" identifier = identifier) ;) (expression_statement "local_28 = piVar3;" (assignment_expression "local_28 = piVar3" identifier = identifier) ;) (do_statement "do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);" do (compound_statement "{\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      }" { (expression_statement "local_34 = local_28[1] - *local_28;" (assignment_expression "local_34 = local_28[1] - *local_28" identifier = (binary_expression "local_28[1] - *local_28" (subscript_expression "local_28[1]" identifier [ number_literal ]) - (pointer_expression "*local_28" * identifier))) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (expression_statement "piVar12[1] = 0;" (assignment_expression "piVar12[1] = 0" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[2] = 0;" (assignment_expression "piVar12[2] = 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" if (parenthesized_expression "((int)local_34 >> 2 == 0)" ( (binary_expression "(int)local_34 >> 2 == 0" (binary_expression "(int)local_34 >> 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) == number_literal) )) (compound_statement "{\n          iVar11 = 0;\n        }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" else (compound_statement "{\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" { (if_statement "if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }" if (parenthesized_expression "(0x3fffffff < (uint)((int)local_34 >> 2))" ( (binary_expression "0x3fffffff < (uint)((int)local_34 >> 2)" number_literal < (call_expression "(uint)((int)local_34 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_34 >> 2)" ( (binary_expression "(int)local_34 >> 2" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) )) (compound_statement "{\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }" { (expression_statement "*(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;" (assignment_expression "*(undefined1 **)(puVar13 + -4) = &LAB_000b41bc" (pointer_expression "*(undefined1 **)(puVar13 + -4)" * (cast_expression "(undefined1 **)(puVar13 + -4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -4)" ( (binary_expression "puVar13 + -4" identifier + number_literal) )))) = (pointer_expression "&LAB_000b41bc" & identifier)) ;) (expression_statement "FUN_00244870();" (call_expression "FUN_00244870()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(uint *)(puVar13 + -0x10) = local_34;" (assignment_expression "*(uint *)(puVar13 + -0x10) = local_34" (pointer_expression "*(uint *)(puVar13 + -0x10)" * (cast_expression "(uint *)(puVar13 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f51;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f51" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = FUN_001fd480();" (assignment_expression "iVar11 = FUN_001fd480()" identifier = (call_expression "FUN_001fd480()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "*piVar12 = iVar11;" (assignment_expression "*piVar12 = iVar11" (pointer_expression "*piVar12" * identifier) = identifier) ;) (expression_statement "piVar12[1] = iVar11;" (assignment_expression "piVar12[1] = iVar11" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar12[2] = local_34 + iVar11;" (assignment_expression "piVar12[2] = local_34 + iVar11" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = (binary_expression "local_34 + iVar11" identifier + identifier)) ;) (expression_statement "iVar4 = *local_28;" (assignment_expression "iVar4 = *local_28" identifier = (pointer_expression "*local_28" * identifier)) ;) (expression_statement "iVar7 = local_28[1] - iVar4;" (assignment_expression "iVar7 = local_28[1] - iVar4" identifier = (binary_expression "local_28[1] - iVar4" (subscript_expression "local_28[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "local_34 = iVar11;" (assignment_expression "local_34 = iVar11" identifier = identifier) ;) (if_statement "if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }" if (parenthesized_expression "(local_28[1] != iVar4)" ( (binary_expression "local_28[1] != iVar4" (subscript_expression "local_28[1]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }" { (expression_statement "*(int *)(puVar13 + -8) = iVar7;" (assignment_expression "*(int *)(puVar13 + -8) = iVar7" (pointer_expression "*(int *)(puVar13 + -8)" * (cast_expression "(int *)(puVar13 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0xc) = iVar4;" (assignment_expression "*(int *)(puVar13 + -0xc) = iVar4" (pointer_expression "*(int *)(puVar13 + -0xc)" * (cast_expression "(int *)(puVar13 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar13 + -0x10) = iVar11;" (assignment_expression "*(int *)(puVar13 + -0x10) = iVar11" (pointer_expression "*(int *)(puVar13 + -0x10)" * (cast_expression "(int *)(puVar13 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f87;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f87" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_38 = iVar7;" (assignment_expression "local_38 = iVar7" identifier = identifier) ;) (expression_statement "memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));" (call_expression "memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8))" identifier (argument_list "(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8))" ( (pointer_expression "*(void **)(puVar13 + -0x10)" * (cast_expression "(void **)(puVar13 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(void **)(puVar13 + -0xc)" * (cast_expression "(void **)(puVar13 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar13 + -8)" * (cast_expression "(size_t *)(puVar13 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -8)" ( (binary_expression "puVar13 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "iVar7 = local_38;" (assignment_expression "iVar7 = local_38" identifier = identifier) ;) })) (expression_statement "local_3c = local_3c + -1;" (assignment_expression "local_3c = local_3c + -1" identifier = (binary_expression "local_3c + -1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar12 + 3;" (assignment_expression "piVar8 = piVar12 + 3" identifier = (binary_expression "piVar12 + 3" identifier + number_literal)) ;) (expression_statement "piVar12[1] = local_34 + iVar7;" (assignment_expression "piVar12[1] = local_34 + iVar7" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = (binary_expression "local_34 + iVar7" identifier + identifier)) ;) (expression_statement "local_28 = local_28 + 3;" (assignment_expression "local_28 = local_28 + 3" identifier = (binary_expression "local_28 + 3" identifier + number_literal)) ;) (expression_statement "piVar12 = piVar8;" (assignment_expression "piVar12 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(local_40 != piVar8)" ( (binary_expression "local_40 != piVar8" identifier != identifier) )) ;) (expression_statement "iVar11 = piVar3[0x58];" (assignment_expression "iVar11 = piVar3[0x58]" identifier = (subscript_expression "piVar3[0x58]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x57] = piVar3[0x57];" (assignment_expression "local_24[0x57] = piVar3[0x57]" (subscript_expression "local_24[0x57]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x57]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x58] = iVar11;" (assignment_expression "local_24[0x58] = iVar11" (subscript_expression "local_24[0x58]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x59];" (assignment_expression "iVar11 = piVar3[0x59]" identifier = (subscript_expression "piVar3[0x59]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5a] = piVar3[0x5a];" (assignment_expression "local_24[0x5a] = piVar3[0x5a]" (subscript_expression "local_24[0x5a]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x5a]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar3[0x5c];" (assignment_expression "iVar4 = piVar3[0x5c]" identifier = (subscript_expression "piVar3[0x5c]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x59] = iVar11;" (assignment_expression "local_24[0x59] = iVar11" (subscript_expression "local_24[0x59]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x5b];" (assignment_expression "iVar11 = piVar3[0x5b]" identifier = (subscript_expression "piVar3[0x5b]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5c] = iVar4;" (assignment_expression "local_24[0x5c] = iVar4" (subscript_expression "local_24[0x5c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[0x5e];" (assignment_expression "iVar4 = piVar3[0x5e]" identifier = (subscript_expression "piVar3[0x5e]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5b] = iVar11;" (assignment_expression "local_24[0x5b] = iVar11" (subscript_expression "local_24[0x5b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x5d];" (assignment_expression "iVar11 = piVar3[0x5d]" identifier = (subscript_expression "piVar3[0x5d]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5e] = iVar4;" (assignment_expression "local_24[0x5e] = iVar4" (subscript_expression "local_24[0x5e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[0x60];" (assignment_expression "iVar4 = piVar3[0x60]" identifier = (subscript_expression "piVar3[0x60]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5d] = iVar11;" (assignment_expression "local_24[0x5d] = iVar11" (subscript_expression "local_24[0x5d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x5f];" (assignment_expression "iVar11 = piVar3[0x5f]" identifier = (subscript_expression "piVar3[0x5f]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x60] = iVar4;" (assignment_expression "local_24[0x60] = iVar4" (subscript_expression "local_24[0x60]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[0x62];" (assignment_expression "iVar4 = piVar3[0x62]" identifier = (subscript_expression "piVar3[0x62]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x5f] = iVar11;" (assignment_expression "local_24[0x5f] = iVar11" (subscript_expression "local_24[0x5f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[0x61];" (assignment_expression "iVar11 = piVar3[0x61]" identifier = (subscript_expression "piVar3[0x61]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x62] = iVar4;" (assignment_expression "local_24[0x62] = iVar4" (subscript_expression "local_24[0x62]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = piVar3[100];" (assignment_expression "iVar4 = piVar3[100]" identifier = (subscript_expression "piVar3[100]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x61] = iVar11;" (assignment_expression "local_24[0x61] = iVar11" (subscript_expression "local_24[0x61]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = piVar3[99];" (assignment_expression "iVar11 = piVar3[99]" identifier = (subscript_expression "piVar3[99]" identifier [ number_literal ])) ;) (expression_statement "local_24[100] = iVar4;" (assignment_expression "local_24[100] = iVar4" (subscript_expression "local_24[100]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_24[99] = iVar11;" (assignment_expression "local_24[99] = iVar11" (subscript_expression "local_24[99]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_24[0x65] = piVar3[0x65];" (assignment_expression "local_24[0x65] = piVar3[0x65]" (subscript_expression "local_24[0x65]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x65]" identifier [ number_literal ])) ;) (expression_statement "local_24[0x66] = piVar3[0x66];" (assignment_expression "local_24[0x66] = piVar3[0x66]" (subscript_expression "local_24[0x66]" identifier [ number_literal ]) = (subscript_expression "piVar3[0x66]" identifier [ number_literal ])) ;) (expression_statement "bVar1 = *(byte *)(local_24 + 0x67);" (assignment_expression "bVar1 = *(byte *)(local_24 + 0x67)" identifier = (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) ))))) ;) (expression_statement "bVar9 = *(byte *)(piVar3 + 0x67) & 1;" (assignment_expression "bVar9 = *(byte *)(piVar3 + 0x67) & 1" identifier = (binary_expression "*(byte *)(piVar3 + 0x67) & 1" (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xfe | bVar9" (binary_expression "bVar1 & 0xfe" identifier & number_literal) | identifier)) ;) (expression_statement "bVar10 = *(byte *)(piVar3 + 0x67) & 2;" (assignment_expression "bVar10 = *(byte *)(piVar3 + 0x67) & 2" identifier = (binary_expression "*(byte *)(piVar3 + 0x67) & 2" (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xfc | bVar9 | bVar10" (binary_expression "bVar1 & 0xfc | bVar9" (binary_expression "bVar1 & 0xfc" identifier & number_literal) | identifier) | identifier)) ;) (expression_statement "bVar2 = *(byte *)(piVar3 + 0x67);" (assignment_expression "bVar2 = *(byte *)(piVar3 + 0x67)" identifier = (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4" (binary_expression "bVar1 & 0xf8 | bVar9 | bVar10" (binary_expression "bVar1 & 0xf8 | bVar9" (binary_expression "bVar1 & 0xf8" identifier & number_literal) | identifier) | identifier) | (binary_expression "bVar2 & 4" identifier & number_literal))) ;) (expression_statement "*(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;" (assignment_expression "*(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8" (pointer_expression "*(byte *)(local_24 + 0x67)" * (cast_expression "(byte *)(local_24 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_24 + 0x67)" ( (binary_expression "local_24 + 0x67" identifier + number_literal) )))) = (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8" (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4" (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10" (binary_expression "bVar1 & 0xf0 | bVar9" (binary_expression "bVar1 & 0xf0" identifier & number_literal) | identifier) | identifier) | (binary_expression "bVar2 & 4" identifier & number_literal)) | (binary_expression "*(byte *)(piVar3 + 0x67) & 8" (pointer_expression "*(byte *)(piVar3 + 0x67)" * (cast_expression "(byte *)(piVar3 + 0x67)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 0x67)" ( (binary_expression "piVar3 + 0x67" identifier + number_literal) )))) & number_literal))) ;) (expression_statement "local_34 = param_2[1];" (assignment_expression "local_34 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "local_28 = (int *)((uint)piVar3 % local_34);" (assignment_expression "local_28 = (int *)((uint)piVar3 % local_34)" identifier = (cast_expression "(int *)((uint)piVar3 % local_34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar3 % local_34)" ( (binary_expression "(uint)piVar3 % local_34" (cast_expression "(uint)piVar3" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) )))) ;) (expression_statement "piVar12 = *(int **)(*param_2 + (int)local_28 * 4);" (assignment_expression "piVar12 = *(int **)(*param_2 + (int)local_28 * 4)" identifier = (pointer_expression "*(int **)(*param_2 + (int)local_28 * 4)" * (cast_expression "(int **)(*param_2 + (int)local_28 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + (int)local_28 * 4)" ( (binary_expression "*param_2 + (int)local_28 * 4" (pointer_expression "*param_2" * identifier) + (binary_expression "(int)local_28 * 4" (cast_expression "(int)local_28" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }" { (expression_statement "piVar8 = (int *)((int *)*piVar12)[1];" (assignment_expression "piVar8 = (int *)((int *)*piVar12)[1]" identifier = (cast_expression "(int *)((int *)*piVar12)[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)*piVar12)[1]" (parenthesized_expression "((int *)*piVar12)" ( (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier)) )) [ number_literal ]))) ;) (expression_statement "piVar14 = (int *)*piVar12;" (assignment_expression "piVar14 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (while_statement "while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }" while (parenthesized_expression "(piVar3 != piVar8)" ( (binary_expression "piVar3 != piVar8" identifier != identifier) )) (compound_statement "{\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }" { (expression_statement "piVar5 = (int *)*piVar14;" (assignment_expression "piVar5 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (if_statement "if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;" if (parenthesized_expression "((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)))" ( (binary_expression "(piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))" (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))" ( (comma_expression "piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar8 = (int *)piVar5[1]" identifier = (cast_expression "(int *)piVar5[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[1]" identifier [ number_literal ]))) , (comma_expression "piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar12 = piVar14" identifier = identifier) , (comma_expression "piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar14 = piVar5" identifier = identifier) , (binary_expression "local_28 != (int *)((uint)piVar8 % local_34)" identifier != (cast_expression "(int *)((uint)piVar8 % local_34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar8 % local_34)" ( (binary_expression "(uint)piVar8 % local_34" (cast_expression "(uint)piVar8" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier) ))))))) ))) )) (goto_statement "goto LAB_000b4178;" goto statement_identifier ;)) })) (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (iVar11 != 0) goto LAB_000b414e;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b414e;" goto statement_identifier ;)) })) (labeled_statement "LAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;" statement_identifier : (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" * (cast_expression "(undefined4 *)(puVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb4185;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb4185" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" * (cast_expression "(undefined4 *)(puVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar6 = (undefined4 *)FUN_001fd480();" (assignment_expression "puVar6 = (undefined4 *)FUN_001fd480()" identifier = (cast_expression "(undefined4 *)FUN_001fd480()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fd480()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = piVar3;" (assignment_expression "puVar6[1] = piVar3" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar13 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar13 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar13 + -0xc)" * (cast_expression "(undefined4 *)(puVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0xc)" ( (binary_expression "puVar13 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 **)(puVar13 + -0x10) = puVar6;" (assignment_expression "*(undefined4 **)(puVar13 + -0x10) = puVar6" (pointer_expression "*(undefined4 **)(puVar13 + -0x10)" * (cast_expression "(undefined4 **)(puVar13 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x10)" ( (binary_expression "puVar13 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x14) = piVar3;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar3" (pointer_expression "*(int **)(puVar13 + -0x14)" * (cast_expression "(int **)(puVar13 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x14)" ( (binary_expression "puVar13 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x18) = local_28;" (assignment_expression "*(int **)(puVar13 + -0x18) = local_28" (pointer_expression "*(int **)(puVar13 + -0x18)" * (cast_expression "(int **)(puVar13 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x18)" ( (binary_expression "puVar13 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x1c) = param_2;" (assignment_expression "*(int **)(puVar13 + -0x1c) = param_2" (pointer_expression "*(int **)(puVar13 + -0x1c)" * (cast_expression "(int **)(puVar13 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x1c)" ( (binary_expression "puVar13 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar13 + -0x20) = local_44;" (assignment_expression "*(int **)(puVar13 + -0x20) = local_44" (pointer_expression "*(int **)(puVar13 + -0x20)" * (cast_expression "(int **)(puVar13 + -0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + -0x20)" ( (binary_expression "puVar13 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0xb41a9;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0xb41a9" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" * (cast_expression "(undefined4 *)(puVar13 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + -0x24)" ( (binary_expression "puVar13 + -0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000be1e0();" (call_expression "FUN_000be1e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar13 = puVar13 + -4;" (assignment_expression "puVar13 = puVar13 + -4" identifier = (binary_expression "puVar13 + -4" identifier + number_literal)) ;) (expression_statement "iVar11 = local_20[0];" (assignment_expression "iVar11 = local_20[0]" identifier = (subscript_expression "local_20[0]" identifier [ number_literal ])) ;) (labeled_statement "LAB_000b414e:\n      local_2c = local_2c + 1;" statement_identifier : (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;)) (expression_statement "*(int **)(iVar11 + 8) = local_24;" (assignment_expression "*(int **)(iVar11 + 8) = local_24" (pointer_expression "*(int **)(iVar11 + 8)" * (cast_expression "(int **)(iVar11 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) = identifier) ;) }) while (parenthesized_expression "(*(uint **)(param_1 + 0x128) != local_2c)" ( (binary_expression "*(uint **)(param_1 + 0x128) != local_2c" (pointer_expression "*(uint **)(param_1 + 0x128)" * (cast_expression "(uint **)(param_1 + 0x128)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression IDENT & LIT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression IDENT & LIT) | IDENT) | IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT & LIT) | IDENT) | IDENT) | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT & LIT) | IDENT) | IDENT) | (binary_expression IDENT & LIT)) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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 *)) ) (pointer_expression * IDENT)) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT) ))))))) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_000b3ec0(int param_1,int *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000b3ec0(int param_1,int *param_2)" (identifier "FUN_000b3ec0") (parameter_list "(int param_1,int *param_2)" (( "(") (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"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  int *piVar3;\n  int iVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  byte bVar10;\n  int iVar11;\n  int *piVar12;\n  undefined1 *puVar13;\n  int *piVar14;\n  int aiStack_70 [9];\n  undefined1 auStack_4c [8];\n  int *local_44;\n  int *local_40;\n  int local_3c;\n  int local_38;\n  uint local_34;\n  undefined **local_30;\n  uint *local_2c;\n  int *local_28;\n  int *local_24;\n  int local_20 [4];\n  \n  local_30 = &__DT_PLTGOT;\n  local_44 = local_20;\n  puVar13 = auStack_4c;\n  local_2c = *(uint **)(param_1 + 0x124);\n  if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "int aiStack_70 [9];" (primitive_type "int") (array_declarator "aiStack_70 [9]" (identifier "aiStack_70") ([ "[") (number_literal "9") (] "]")) (; ";")) (declaration "undefined1 auStack_4c [8];" (type_identifier "undefined1") (array_declarator "auStack_4c [8]" (identifier "auStack_4c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "int *local_44;" (primitive_type "int") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "int *local_40;" (primitive_type "int") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "undefined **local_30;" (type_identifier "undefined") (pointer_declarator "**local_30" (* "*") (pointer_declarator "*local_30" (* "*") (identifier "local_30"))) (; ";")) (declaration "uint *local_2c;" (type_identifier "uint") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int *local_24;" (primitive_type "int") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "int local_20 [4];" (primitive_type "int") (array_declarator "local_20 [4]" (identifier "local_20") ([ "[") (number_literal "4") (] "]")) (; ";")) (expression_statement "local_30 = &__DT_PLTGOT;" (assignment_expression "local_30 = &__DT_PLTGOT" (identifier "local_30") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_44 = local_20;" (assignment_expression "local_44 = local_20" (identifier "local_44") (= "=") (identifier "local_20")) (; ";")) (expression_statement "puVar13 = auStack_4c;" (assignment_expression "puVar13 = auStack_4c" (identifier "puVar13") (= "=") (identifier "auStack_4c")) (; ";")) (expression_statement "local_2c = *(uint **)(param_1 + 0x124);" (assignment_expression "local_2c = *(uint **)(param_1 + 0x124)" (identifier "local_2c") (= "=") (pointer_expression "*(uint **)(param_1 + 0x124)" (* "*") (cast_expression "(uint **)(param_1 + 0x124)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (if_statement "if (local_2c != *(uint **)(param_1 + 0x128)) {\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }" (if "if") (parenthesized_expression "(local_2c != *(uint **)(param_1 + 0x128))" (( "(") (binary_expression "local_2c != *(uint **)(param_1 + 0x128)" (identifier "local_2c") (!= "!=") (pointer_expression "*(uint **)(param_1 + 0x128)" (* "*") (cast_expression "(uint **)(param_1 + 0x128)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) () ")")) (compound_statement "{\n    do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);\n  }" ({ "{") (do_statement "do {\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    } while (*(uint **)(param_1 + 0x128) != local_2c);" (do "do") (compound_statement "{\n      piVar3 = (int *)*local_2c;\n      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;\n      local_24 = (int *)FUN_001fd480();\n      local_40 = local_24 + 0x57;\n      local_3c = 0x1c;\n      piVar12 = local_24;\n      local_28 = piVar3;\n      do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);\n      iVar11 = piVar3[0x58];\n      local_24[0x57] = piVar3[0x57];\n      local_24[0x58] = iVar11;\n      iVar11 = piVar3[0x59];\n      local_24[0x5a] = piVar3[0x5a];\n      iVar4 = piVar3[0x5c];\n      local_24[0x59] = iVar11;\n      iVar11 = piVar3[0x5b];\n      local_24[0x5c] = iVar4;\n      iVar4 = piVar3[0x5e];\n      local_24[0x5b] = iVar11;\n      iVar11 = piVar3[0x5d];\n      local_24[0x5e] = iVar4;\n      iVar4 = piVar3[0x60];\n      local_24[0x5d] = iVar11;\n      iVar11 = piVar3[0x5f];\n      local_24[0x60] = iVar4;\n      iVar4 = piVar3[0x62];\n      local_24[0x5f] = iVar11;\n      iVar11 = piVar3[0x61];\n      local_24[0x62] = iVar4;\n      iVar4 = piVar3[100];\n      local_24[0x61] = iVar11;\n      iVar11 = piVar3[99];\n      local_24[100] = iVar4;\n      local_24[99] = iVar11;\n      local_24[0x65] = piVar3[0x65];\n      local_24[0x66] = piVar3[0x66];\n      bVar1 = *(byte *)(local_24 + 0x67);\n      bVar9 = *(byte *)(piVar3 + 0x67) & 1;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;\n      bVar10 = *(byte *)(piVar3 + 0x67) & 2;\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;\n      bVar2 = *(byte *)(piVar3 + 0x67);\n      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;\n      *(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;\n      local_34 = param_2[1];\n      local_28 = (int *)((uint)piVar3 % local_34);\n      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);\n      if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }\nLAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;\n      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;\n      puVar6 = (undefined4 *)FUN_001fd480();\n      *puVar6 = 0;\n      puVar6[1] = piVar3;\n      puVar6[2] = 0;\n      *(undefined4 *)(puVar13 + -0xc) = 1;\n      *(undefined4 **)(puVar13 + -0x10) = puVar6;\n      *(int **)(puVar13 + -0x14) = piVar3;\n      *(int **)(puVar13 + -0x18) = local_28;\n      *(int **)(puVar13 + -0x1c) = param_2;\n      *(int **)(puVar13 + -0x20) = local_44;\n      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;\n      FUN_000be1e0();\n      puVar13 = puVar13 + -4;\n      iVar11 = local_20[0];\nLAB_000b414e:\n      local_2c = local_2c + 1;\n      *(int **)(iVar11 + 8) = local_24;\n    }" ({ "{") (expression_statement "piVar3 = (int *)*local_2c;" (assignment_expression "piVar3 = (int *)*local_2c" (identifier "piVar3") (= "=") (cast_expression "(int *)*local_2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_2c" (* "*") (identifier "local_2c")))) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0x1a0;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0x1a0" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0x1a0")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f15;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f15" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xb3f15")) (; ";")) (expression_statement "local_24 = (int *)FUN_001fd480();" (assignment_expression "local_24 = (int *)FUN_001fd480()" (identifier "local_24") (= "=") (cast_expression "(int *)FUN_001fd480()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001fd480()" (identifier "FUN_001fd480") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_40 = local_24 + 0x57;" (assignment_expression "local_40 = local_24 + 0x57" (identifier "local_40") (= "=") (binary_expression "local_24 + 0x57" (identifier "local_24") (+ "+") (number_literal "0x57"))) (; ";")) (expression_statement "local_3c = 0x1c;" (assignment_expression "local_3c = 0x1c" (identifier "local_3c") (= "=") (number_literal "0x1c")) (; ";")) (expression_statement "piVar12 = local_24;" (assignment_expression "piVar12 = local_24" (identifier "piVar12") (= "=") (identifier "local_24")) (; ";")) (expression_statement "local_28 = piVar3;" (assignment_expression "local_28 = piVar3" (identifier "local_28") (= "=") (identifier "piVar3")) (; ";")) (do_statement "do {\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      } while (local_40 != piVar8);" (do "do") (compound_statement "{\n        local_34 = local_28[1] - *local_28;\n        *piVar12 = 0;\n        piVar12[1] = 0;\n        piVar12[2] = 0;\n        if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }\n        *piVar12 = iVar11;\n        piVar12[1] = iVar11;\n        piVar12[2] = local_34 + iVar11;\n        iVar4 = *local_28;\n        iVar7 = local_28[1] - iVar4;\n        local_34 = iVar11;\n        if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }\n        local_3c = local_3c + -1;\n        piVar8 = piVar12 + 3;\n        piVar12[1] = local_34 + iVar7;\n        local_28 = local_28 + 3;\n        piVar12 = piVar8;\n      }" ({ "{") (expression_statement "local_34 = local_28[1] - *local_28;" (assignment_expression "local_34 = local_28[1] - *local_28" (identifier "local_34") (= "=") (binary_expression "local_28[1] - *local_28" (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")) (- "-") (pointer_expression "*local_28" (* "*") (identifier "local_28")))) (; ";")) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar12[1] = 0;" (assignment_expression "piVar12[1] = 0" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar12[2] = 0;" (assignment_expression "piVar12[2] = 0" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)local_34 >> 2 == 0) {\n          iVar11 = 0;\n        }\n        else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" (if "if") (parenthesized_expression "((int)local_34 >> 2 == 0)" (( "(") (binary_expression "(int)local_34 >> 2 == 0" (binary_expression "(int)local_34 >> 2" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (>> ">>") (number_literal "2")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar11 = 0;\n        }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" (else "else") (compound_statement "{\n          if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }\n          *(uint *)(puVar13 + -0x10) = local_34;\n                    \n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;\n          iVar11 = FUN_001fd480();\n        }" ({ "{") (if_statement "if (0x3fffffff < (uint)((int)local_34 >> 2)) {\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }" (if "if") (parenthesized_expression "(0x3fffffff < (uint)((int)local_34 >> 2))" (( "(") (binary_expression "0x3fffffff < (uint)((int)local_34 >> 2)" (number_literal "0x3fffffff") (< "<") (call_expression "(uint)((int)local_34 >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_34 >> 2)" (( "(") (binary_expression "(int)local_34 >> 2" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (>> ">>") (number_literal "2")) () ")")))) () ")")) (compound_statement "{\n                    \n                    \n            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;\n            FUN_00244870();\n          }" ({ "{") (expression_statement "*(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;" (assignment_expression "*(undefined1 **)(puVar13 + -4) = &LAB_000b41bc" (pointer_expression "*(undefined1 **)(puVar13 + -4)" (* "*") (cast_expression "(undefined1 **)(puVar13 + -4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -4)" (( "(") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4")) () ")")))) (= "=") (pointer_expression "&LAB_000b41bc" (& "&") (identifier "LAB_000b41bc"))) (; ";")) (expression_statement "FUN_00244870();" (call_expression "FUN_00244870()" (identifier "FUN_00244870") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(puVar13 + -0x10) = local_34;" (assignment_expression "*(uint *)(puVar13 + -0x10) = local_34" (pointer_expression "*(uint *)(puVar13 + -0x10)" (* "*") (cast_expression "(uint *)(puVar13 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f51;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f51" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xb3f51")) (; ";")) (expression_statement "iVar11 = FUN_001fd480();" (assignment_expression "iVar11 = FUN_001fd480()" (identifier "iVar11") (= "=") (call_expression "FUN_001fd480()" (identifier "FUN_001fd480") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "*piVar12 = iVar11;" (assignment_expression "*piVar12 = iVar11" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar12[1] = iVar11;" (assignment_expression "piVar12[1] = iVar11" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar12[2] = local_34 + iVar11;" (assignment_expression "piVar12[2] = local_34 + iVar11" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "local_34 + iVar11" (identifier "local_34") (+ "+") (identifier "iVar11"))) (; ";")) (expression_statement "iVar4 = *local_28;" (assignment_expression "iVar4 = *local_28" (identifier "iVar4") (= "=") (pointer_expression "*local_28" (* "*") (identifier "local_28"))) (; ";")) (expression_statement "iVar7 = local_28[1] - iVar4;" (assignment_expression "iVar7 = local_28[1] - iVar4" (identifier "iVar7") (= "=") (binary_expression "local_28[1] - iVar4" (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar4"))) (; ";")) (expression_statement "local_34 = iVar11;" (assignment_expression "local_34 = iVar11" (identifier "local_34") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (local_28[1] != iVar4) {\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }" (if "if") (parenthesized_expression "(local_28[1] != iVar4)" (( "(") (binary_expression "local_28[1] != iVar4" (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n          *(int *)(puVar13 + -8) = iVar7;\n          *(int *)(puVar13 + -0xc) = iVar4;\n          *(int *)(puVar13 + -0x10) = iVar11;\n          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;\n          local_38 = iVar7;\n          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));\n          iVar7 = local_38;\n        }" ({ "{") (expression_statement "*(int *)(puVar13 + -8) = iVar7;" (assignment_expression "*(int *)(puVar13 + -8) = iVar7" (pointer_expression "*(int *)(puVar13 + -8)" (* "*") (cast_expression "(int *)(puVar13 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(int *)(puVar13 + -0xc) = iVar4;" (assignment_expression "*(int *)(puVar13 + -0xc) = iVar4" (pointer_expression "*(int *)(puVar13 + -0xc)" (* "*") (cast_expression "(int *)(puVar13 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "*(int *)(puVar13 + -0x10) = iVar11;" (assignment_expression "*(int *)(puVar13 + -0x10) = iVar11" (pointer_expression "*(int *)(puVar13 + -0x10)" (* "*") (cast_expression "(int *)(puVar13 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb3f87;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb3f87" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xb3f87")) (; ";")) (expression_statement "local_38 = iVar7;" (assignment_expression "local_38 = iVar7" (identifier "local_38") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));" (call_expression "memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8))" (identifier "memmove") (argument_list "(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8))" (( "(") (pointer_expression "*(void **)(puVar13 + -0x10)" (* "*") (cast_expression "(void **)(puVar13 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(void **)(puVar13 + -0xc)" (* "*") (cast_expression "(void **)(puVar13 + -0xc)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)(puVar13 + -8)" (* "*") (cast_expression "(size_t *)(puVar13 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -8)" (( "(") (binary_expression "puVar13 + -8" (identifier "puVar13") (+ "+") (number_literal "-8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar7 = local_38;" (assignment_expression "iVar7 = local_38" (identifier "iVar7") (= "=") (identifier "local_38")) (; ";")) (} "}"))) (expression_statement "local_3c = local_3c + -1;" (assignment_expression "local_3c = local_3c + -1" (identifier "local_3c") (= "=") (binary_expression "local_3c + -1" (identifier "local_3c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar8 = piVar12 + 3;" (assignment_expression "piVar8 = piVar12 + 3" (identifier "piVar8") (= "=") (binary_expression "piVar12 + 3" (identifier "piVar12") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "piVar12[1] = local_34 + iVar7;" (assignment_expression "piVar12[1] = local_34 + iVar7" (subscript_expression "piVar12[1]" (identifier "piVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "local_34 + iVar7" (identifier "local_34") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "local_28 = local_28 + 3;" (assignment_expression "local_28 = local_28 + 3" (identifier "local_28") (= "=") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "piVar12 = piVar8;" (assignment_expression "piVar12 = piVar8" (identifier "piVar12") (= "=") (identifier "piVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 != piVar8)" (( "(") (binary_expression "local_40 != piVar8" (identifier "local_40") (!= "!=") (identifier "piVar8")) () ")")) (; ";")) (expression_statement "iVar11 = piVar3[0x58];" (assignment_expression "iVar11 = piVar3[0x58]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[0x58]" (identifier "piVar3") ([ "[") (number_literal "0x58") (] "]"))) (; ";")) (expression_statement "local_24[0x57] = piVar3[0x57];" (assignment_expression "local_24[0x57] = piVar3[0x57]" (subscript_expression "local_24[0x57]" (identifier "local_24") ([ "[") (number_literal "0x57") (] "]")) (= "=") (subscript_expression "piVar3[0x57]" (identifier "piVar3") ([ "[") (number_literal "0x57") (] "]"))) (; ";")) (expression_statement "local_24[0x58] = iVar11;" (assignment_expression "local_24[0x58] = iVar11" (subscript_expression "local_24[0x58]" (identifier "local_24") ([ "[") (number_literal "0x58") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar11 = piVar3[0x59];" (assignment_expression "iVar11 = piVar3[0x59]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[0x59]" (identifier "piVar3") ([ "[") (number_literal "0x59") (] "]"))) (; ";")) (expression_statement "local_24[0x5a] = piVar3[0x5a];" (assignment_expression "local_24[0x5a] = piVar3[0x5a]" (subscript_expression "local_24[0x5a]" (identifier "local_24") ([ "[") (number_literal "0x5a") (] "]")) (= "=") (subscript_expression "piVar3[0x5a]" (identifier "piVar3") ([ "[") (number_literal "0x5a") (] "]"))) (; ";")) (expression_statement "iVar4 = piVar3[0x5c];" (assignment_expression "iVar4 = piVar3[0x5c]" (identifier "iVar4") (= "=") (subscript_expression "piVar3[0x5c]" (identifier "piVar3") ([ "[") (number_literal "0x5c") (] "]"))) (; ";")) (expression_statement "local_24[0x59] = iVar11;" (assignment_expression "local_24[0x59] = iVar11" (subscript_expression "local_24[0x59]" (identifier "local_24") ([ "[") (number_literal "0x59") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar11 = piVar3[0x5b];" (assignment_expression "iVar11 = piVar3[0x5b]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[0x5b]" (identifier "piVar3") ([ "[") (number_literal "0x5b") (] "]"))) (; ";")) (expression_statement "local_24[0x5c] = iVar4;" (assignment_expression "local_24[0x5c] = iVar4" (subscript_expression "local_24[0x5c]" (identifier "local_24") ([ "[") (number_literal "0x5c") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = piVar3[0x5e];" (assignment_expression "iVar4 = piVar3[0x5e]" (identifier "iVar4") (= "=") (subscript_expression "piVar3[0x5e]" (identifier "piVar3") ([ "[") (number_literal "0x5e") (] "]"))) (; ";")) (expression_statement "local_24[0x5b] = iVar11;" (assignment_expression "local_24[0x5b] = iVar11" (subscript_expression "local_24[0x5b]" (identifier "local_24") ([ "[") (number_literal "0x5b") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar11 = piVar3[0x5d];" (assignment_expression "iVar11 = piVar3[0x5d]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[0x5d]" (identifier "piVar3") ([ "[") (number_literal "0x5d") (] "]"))) (; ";")) (expression_statement "local_24[0x5e] = iVar4;" (assignment_expression "local_24[0x5e] = iVar4" (subscript_expression "local_24[0x5e]" (identifier "local_24") ([ "[") (number_literal "0x5e") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = piVar3[0x60];" (assignment_expression "iVar4 = piVar3[0x60]" (identifier "iVar4") (= "=") (subscript_expression "piVar3[0x60]" (identifier "piVar3") ([ "[") (number_literal "0x60") (] "]"))) (; ";")) (expression_statement "local_24[0x5d] = iVar11;" (assignment_expression "local_24[0x5d] = iVar11" (subscript_expression "local_24[0x5d]" (identifier "local_24") ([ "[") (number_literal "0x5d") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar11 = piVar3[0x5f];" (assignment_expression "iVar11 = piVar3[0x5f]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[0x5f]" (identifier "piVar3") ([ "[") (number_literal "0x5f") (] "]"))) (; ";")) (expression_statement "local_24[0x60] = iVar4;" (assignment_expression "local_24[0x60] = iVar4" (subscript_expression "local_24[0x60]" (identifier "local_24") ([ "[") (number_literal "0x60") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = piVar3[0x62];" (assignment_expression "iVar4 = piVar3[0x62]" (identifier "iVar4") (= "=") (subscript_expression "piVar3[0x62]" (identifier "piVar3") ([ "[") (number_literal "0x62") (] "]"))) (; ";")) (expression_statement "local_24[0x5f] = iVar11;" (assignment_expression "local_24[0x5f] = iVar11" (subscript_expression "local_24[0x5f]" (identifier "local_24") ([ "[") (number_literal "0x5f") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar11 = piVar3[0x61];" (assignment_expression "iVar11 = piVar3[0x61]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[0x61]" (identifier "piVar3") ([ "[") (number_literal "0x61") (] "]"))) (; ";")) (expression_statement "local_24[0x62] = iVar4;" (assignment_expression "local_24[0x62] = iVar4" (subscript_expression "local_24[0x62]" (identifier "local_24") ([ "[") (number_literal "0x62") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = piVar3[100];" (assignment_expression "iVar4 = piVar3[100]" (identifier "iVar4") (= "=") (subscript_expression "piVar3[100]" (identifier "piVar3") ([ "[") (number_literal "100") (] "]"))) (; ";")) (expression_statement "local_24[0x61] = iVar11;" (assignment_expression "local_24[0x61] = iVar11" (subscript_expression "local_24[0x61]" (identifier "local_24") ([ "[") (number_literal "0x61") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar11 = piVar3[99];" (assignment_expression "iVar11 = piVar3[99]" (identifier "iVar11") (= "=") (subscript_expression "piVar3[99]" (identifier "piVar3") ([ "[") (number_literal "99") (] "]"))) (; ";")) (expression_statement "local_24[100] = iVar4;" (assignment_expression "local_24[100] = iVar4" (subscript_expression "local_24[100]" (identifier "local_24") ([ "[") (number_literal "100") (] "]")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "local_24[99] = iVar11;" (assignment_expression "local_24[99] = iVar11" (subscript_expression "local_24[99]" (identifier "local_24") ([ "[") (number_literal "99") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "local_24[0x65] = piVar3[0x65];" (assignment_expression "local_24[0x65] = piVar3[0x65]" (subscript_expression "local_24[0x65]" (identifier "local_24") ([ "[") (number_literal "0x65") (] "]")) (= "=") (subscript_expression "piVar3[0x65]" (identifier "piVar3") ([ "[") (number_literal "0x65") (] "]"))) (; ";")) (expression_statement "local_24[0x66] = piVar3[0x66];" (assignment_expression "local_24[0x66] = piVar3[0x66]" (subscript_expression "local_24[0x66]" (identifier "local_24") ([ "[") (number_literal "0x66") (] "]")) (= "=") (subscript_expression "piVar3[0x66]" (identifier "piVar3") ([ "[") (number_literal "0x66") (] "]"))) (; ";")) (expression_statement "bVar1 = *(byte *)(local_24 + 0x67);" (assignment_expression "bVar1 = *(byte *)(local_24 + 0x67)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(local_24 + 0x67)" (* "*") (cast_expression "(byte *)(local_24 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + 0x67)" (( "(") (binary_expression "local_24 + 0x67" (identifier "local_24") (+ "+") (number_literal "0x67")) () ")"))))) (; ";")) (expression_statement "bVar9 = *(byte *)(piVar3 + 0x67) & 1;" (assignment_expression "bVar9 = *(byte *)(piVar3 + 0x67) & 1" (identifier "bVar9") (= "=") (binary_expression "*(byte *)(piVar3 + 0x67) & 1" (pointer_expression "*(byte *)(piVar3 + 0x67)" (* "*") (cast_expression "(byte *)(piVar3 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x67)" (( "(") (binary_expression "piVar3 + 0x67" (identifier "piVar3") (+ "+") (number_literal "0x67")) () ")")))) (& "&") (number_literal "1"))) (; ";")) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9" (pointer_expression "*(byte *)(local_24 + 0x67)" (* "*") (cast_expression "(byte *)(local_24 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + 0x67)" (( "(") (binary_expression "local_24 + 0x67" (identifier "local_24") (+ "+") (number_literal "0x67")) () ")")))) (= "=") (binary_expression "bVar1 & 0xfe | bVar9" (binary_expression "bVar1 & 0xfe" (identifier "bVar1") (& "&") (number_literal "0xfe")) (| "|") (identifier "bVar9"))) (; ";")) (expression_statement "bVar10 = *(byte *)(piVar3 + 0x67) & 2;" (assignment_expression "bVar10 = *(byte *)(piVar3 + 0x67) & 2" (identifier "bVar10") (= "=") (binary_expression "*(byte *)(piVar3 + 0x67) & 2" (pointer_expression "*(byte *)(piVar3 + 0x67)" (* "*") (cast_expression "(byte *)(piVar3 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x67)" (( "(") (binary_expression "piVar3 + 0x67" (identifier "piVar3") (+ "+") (number_literal "0x67")) () ")")))) (& "&") (number_literal "2"))) (; ";")) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10" (pointer_expression "*(byte *)(local_24 + 0x67)" (* "*") (cast_expression "(byte *)(local_24 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + 0x67)" (( "(") (binary_expression "local_24 + 0x67" (identifier "local_24") (+ "+") (number_literal "0x67")) () ")")))) (= "=") (binary_expression "bVar1 & 0xfc | bVar9 | bVar10" (binary_expression "bVar1 & 0xfc | bVar9" (binary_expression "bVar1 & 0xfc" (identifier "bVar1") (& "&") (number_literal "0xfc")) (| "|") (identifier "bVar9")) (| "|") (identifier "bVar10"))) (; ";")) (expression_statement "bVar2 = *(byte *)(piVar3 + 0x67);" (assignment_expression "bVar2 = *(byte *)(piVar3 + 0x67)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(piVar3 + 0x67)" (* "*") (cast_expression "(byte *)(piVar3 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x67)" (( "(") (binary_expression "piVar3 + 0x67" (identifier "piVar3") (+ "+") (number_literal "0x67")) () ")"))))) (; ";")) (expression_statement "*(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;" (assignment_expression "*(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4" (pointer_expression "*(byte *)(local_24 + 0x67)" (* "*") (cast_expression "(byte *)(local_24 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + 0x67)" (( "(") (binary_expression "local_24 + 0x67" (identifier "local_24") (+ "+") (number_literal "0x67")) () ")")))) (= "=") (binary_expression "bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4" (binary_expression "bVar1 & 0xf8 | bVar9 | bVar10" (binary_expression "bVar1 & 0xf8 | bVar9" (binary_expression "bVar1 & 0xf8" (identifier "bVar1") (& "&") (number_literal "0xf8")) (| "|") (identifier "bVar9")) (| "|") (identifier "bVar10")) (| "|") (binary_expression "bVar2 & 4" (identifier "bVar2") (& "&") (number_literal "4")))) (; ";")) (expression_statement "*(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;" (assignment_expression "*(byte *)(local_24 + 0x67) =\n           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8" (pointer_expression "*(byte *)(local_24 + 0x67)" (* "*") (cast_expression "(byte *)(local_24 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_24 + 0x67)" (( "(") (binary_expression "local_24 + 0x67" (identifier "local_24") (+ "+") (number_literal "0x67")) () ")")))) (= "=") (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8" (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4" (binary_expression "bVar1 & 0xf0 | bVar9 | bVar10" (binary_expression "bVar1 & 0xf0 | bVar9" (binary_expression "bVar1 & 0xf0" (identifier "bVar1") (& "&") (number_literal "0xf0")) (| "|") (identifier "bVar9")) (| "|") (identifier "bVar10")) (| "|") (binary_expression "bVar2 & 4" (identifier "bVar2") (& "&") (number_literal "4"))) (| "|") (binary_expression "*(byte *)(piVar3 + 0x67) & 8" (pointer_expression "*(byte *)(piVar3 + 0x67)" (* "*") (cast_expression "(byte *)(piVar3 + 0x67)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 0x67)" (( "(") (binary_expression "piVar3 + 0x67" (identifier "piVar3") (+ "+") (number_literal "0x67")) () ")")))) (& "&") (number_literal "8")))) (; ";")) (expression_statement "local_34 = param_2[1];" (assignment_expression "local_34 = param_2[1]" (identifier "local_34") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_28 = (int *)((uint)piVar3 % local_34);" (assignment_expression "local_28 = (int *)((uint)piVar3 % local_34)" (identifier "local_28") (= "=") (cast_expression "(int *)((uint)piVar3 % local_34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)piVar3 % local_34)" (( "(") (binary_expression "(uint)piVar3 % local_34" (cast_expression "(uint)piVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar3")) (% "%") (identifier "local_34")) () ")")))) (; ";")) (expression_statement "piVar12 = *(int **)(*param_2 + (int)local_28 * 4);" (assignment_expression "piVar12 = *(int **)(*param_2 + (int)local_28 * 4)" (identifier "piVar12") (= "=") (pointer_expression "*(int **)(*param_2 + (int)local_28 * 4)" (* "*") (cast_expression "(int **)(*param_2 + (int)local_28 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + (int)local_28 * 4)" (( "(") (binary_expression "*param_2 + (int)local_28 * 4" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (binary_expression "(int)local_28 * 4" (cast_expression "(int)local_28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_28")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar12 != (int *)0x0) {\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }" (if "if") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar8 = (int *)((int *)*piVar12)[1];\n        piVar14 = (int *)*piVar12;\n        while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }\n        iVar11 = *piVar12;\n        if (iVar11 != 0) goto LAB_000b414e;\n      }" ({ "{") (expression_statement "piVar8 = (int *)((int *)*piVar12)[1];" (assignment_expression "piVar8 = (int *)((int *)*piVar12)[1]" (identifier "piVar8") (= "=") (cast_expression "(int *)((int *)*piVar12)[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((int *)*piVar12)[1]" (parenthesized_expression "((int *)*piVar12)" (( "(") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) () ")")) ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "piVar14 = (int *)*piVar12;" (assignment_expression "piVar14 = (int *)*piVar12" (identifier "piVar14") (= "=") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (while_statement "while (piVar3 != piVar8) {\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }" (while "while") (parenthesized_expression "(piVar3 != piVar8)" (( "(") (binary_expression "piVar3 != piVar8" (identifier "piVar3") (!= "!=") (identifier "piVar8")) () ")")) (compound_statement "{\n          piVar5 = (int *)*piVar14;\n          if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;\n        }" ({ "{") (expression_statement "piVar5 = (int *)*piVar14;" (assignment_expression "piVar5 = (int *)*piVar14" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";")) (if_statement "if ((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;" (if "if") (parenthesized_expression "((piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)))" (( "(") (binary_expression "(piVar5 == (int *)0x0) ||\n             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))" (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34))" (( "(") (comma_expression "piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar8 = (int *)piVar5[1]" (identifier "piVar8") (= "=") (cast_expression "(int *)piVar5[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]")))) (, ",") (comma_expression "piVar12 = piVar14, piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar12 = piVar14" (identifier "piVar12") (= "=") (identifier "piVar14")) (, ",") (comma_expression "piVar14 = piVar5,\n             local_28 != (int *)((uint)piVar8 % local_34)" (assignment_expression "piVar14 = piVar5" (identifier "piVar14") (= "=") (identifier "piVar5")) (, ",") (binary_expression "local_28 != (int *)((uint)piVar8 % local_34)" (identifier "local_28") (!= "!=") (cast_expression "(int *)((uint)piVar8 % local_34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)piVar8 % local_34)" (( "(") (binary_expression "(uint)piVar8 % local_34" (cast_expression "(uint)piVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar8")) (% "%") (identifier "local_34")) () ")"))))))) () ")"))) () ")")) (goto_statement "goto LAB_000b4178;" (goto "goto") (statement_identifier "LAB_000b4178") (; ";"))) (} "}"))) (expression_statement "iVar11 = *piVar12;" (assignment_expression "iVar11 = *piVar12" (identifier "iVar11") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (if_statement "if (iVar11 != 0) goto LAB_000b414e;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b414e;" (goto "goto") (statement_identifier "LAB_000b414e") (; ";"))) (} "}"))) (labeled_statement "LAB_000b4178:\n      *(undefined4 *)(puVar13 + -0x10) = 0xc;" (statement_identifier "LAB_000b4178") (: ":") (expression_statement "*(undefined4 *)(puVar13 + -0x10) = 0xc;" (assignment_expression "*(undefined4 *)(puVar13 + -0x10) = 0xc" (pointer_expression "*(undefined4 *)(puVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0xc")) (; ";"))) (expression_statement "*(undefined4 *)(puVar13 + -0x14) = 0xb4185;" (assignment_expression "*(undefined4 *)(puVar13 + -0x14) = 0xb4185" (pointer_expression "*(undefined4 *)(puVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0xb4185")) (; ";")) (expression_statement "puVar6 = (undefined4 *)FUN_001fd480();" (assignment_expression "puVar6 = (undefined4 *)FUN_001fd480()" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)FUN_001fd480()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001fd480()" (identifier "FUN_001fd480") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[1] = piVar3;" (assignment_expression "puVar6[1] = piVar3" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "puVar6[2] = 0;" (assignment_expression "puVar6[2] = 0" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0xc) = 1;" (assignment_expression "*(undefined4 *)(puVar13 + -0xc) = 1" (pointer_expression "*(undefined4 *)(puVar13 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0xc)" (( "(") (binary_expression "puVar13 + -0xc" (identifier "puVar13") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 **)(puVar13 + -0x10) = puVar6;" (assignment_expression "*(undefined4 **)(puVar13 + -0x10) = puVar6" (pointer_expression "*(undefined4 **)(puVar13 + -0x10)" (* "*") (cast_expression "(undefined4 **)(puVar13 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x10)" (( "(") (binary_expression "puVar13 + -0x10" (identifier "puVar13") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*(int **)(puVar13 + -0x14) = piVar3;" (assignment_expression "*(int **)(puVar13 + -0x14) = piVar3" (pointer_expression "*(int **)(puVar13 + -0x14)" (* "*") (cast_expression "(int **)(puVar13 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x14)" (( "(") (binary_expression "puVar13 + -0x14" (identifier "puVar13") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "*(int **)(puVar13 + -0x18) = local_28;" (assignment_expression "*(int **)(puVar13 + -0x18) = local_28" (pointer_expression "*(int **)(puVar13 + -0x18)" (* "*") (cast_expression "(int **)(puVar13 + -0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x18)" (( "(") (binary_expression "puVar13 + -0x18" (identifier "puVar13") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_28")) (; ";")) (expression_statement "*(int **)(puVar13 + -0x1c) = param_2;" (assignment_expression "*(int **)(puVar13 + -0x1c) = param_2" (pointer_expression "*(int **)(puVar13 + -0x1c)" (* "*") (cast_expression "(int **)(puVar13 + -0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x1c)" (( "(") (binary_expression "puVar13 + -0x1c" (identifier "puVar13") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int **)(puVar13 + -0x20) = local_44;" (assignment_expression "*(int **)(puVar13 + -0x20) = local_44" (pointer_expression "*(int **)(puVar13 + -0x20)" (* "*") (cast_expression "(int **)(puVar13 + -0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + -0x20)" (( "(") (binary_expression "puVar13 + -0x20" (identifier "puVar13") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (expression_statement "*(undefined4 *)(puVar13 + -0x24) = 0xb41a9;" (assignment_expression "*(undefined4 *)(puVar13 + -0x24) = 0xb41a9" (pointer_expression "*(undefined4 *)(puVar13 + -0x24)" (* "*") (cast_expression "(undefined4 *)(puVar13 + -0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + -0x24)" (( "(") (binary_expression "puVar13 + -0x24" (identifier "puVar13") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (number_literal "0xb41a9")) (; ";")) (expression_statement "FUN_000be1e0();" (call_expression "FUN_000be1e0()" (identifier "FUN_000be1e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar13 = puVar13 + -4;" (assignment_expression "puVar13 = puVar13 + -4" (identifier "puVar13") (= "=") (binary_expression "puVar13 + -4" (identifier "puVar13") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar11 = local_20[0];" (assignment_expression "iVar11 = local_20[0]" (identifier "iVar11") (= "=") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (; ";")) (labeled_statement "LAB_000b414e:\n      local_2c = local_2c + 1;" (statement_identifier "LAB_000b414e") (: ":") (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" (identifier "local_2c") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*(int **)(iVar11 + 8) = local_24;" (assignment_expression "*(int **)(iVar11 + 8) = local_24" (pointer_expression "*(int **)(iVar11 + 8)" (* "*") (cast_expression "(int **)(iVar11 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(uint **)(param_1 + 0x128) != local_2c)" (( "(") (binary_expression "*(uint **)(param_1 + 0x128) != local_2c" (pointer_expression "*(uint **)(param_1 + 0x128)" (* "*") (cast_expression "(uint **)(param_1 + 0x128)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "local_2c")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void save_segments(Layout * this, Segment_states * segment_states) */

void __thiscall gold::Layout::save_segments(Layout *this,Segment_states *segment_states)

{
  byte bVar1;
  Output_segment *__node;
  anon_struct_4_0_00000001_for___align aVar2;
  anon_struct_4_0_00000001_for___align __src;
  _Hash_node_base *p_Var3;
  uint uVar4;
  undefined4 *__n_elt;
  size_t __n;
  Output_segment *pOVar5;
  byte bVar6;
  byte bVar7;
  byte bVar8;
  _Hash_node_base *p_Var9;
  uint __code;
  __bucket_type p_Var10;
  _Hash_node_base *p_Var11;
  _Hash_node_base *p_Var12;
  __bucket_type p_Var13;
  pointer local_2c;
  Output_segment *local_28;
  _Hash_node_base *local_20;
  
  local_2c = (this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_start;
  if (local_2c !=
      (this->segment_list_).
      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
      _M_finish) {
    do {
      __node = *local_2c;
      p_Var3 = (_Hash_node_base *)operator_new(0x1a0);
      p_Var12 = p_Var3;
      local_28 = __node;
      do {
        uVar4 = (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                        *)local_28->output_lists_)->_M_storage)._M_storage.__align -
                (int)(((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                        *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;
        p_Var12->_M_nxt = (_Hash_node_base *)0x0;
        p_Var12[1]._M_nxt = (_Hash_node_base *)0x0;
        p_Var12[2]._M_nxt = (_Hash_node_base *)0x0;
        if ((int)uVar4 >> 2 == 0) {
          p_Var9 = (_Hash_node_base *)0x0;
        }
        else {
          if (0x3fffffff < (uint)((int)uVar4 >> 2)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */
            std::__throw_bad_alloc();
          }
                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */
          p_Var9 = (_Hash_node_base *)operator_new(uVar4);
        }
        p_Var12->_M_nxt = p_Var9;
        p_Var12[1]._M_nxt = p_Var9;
        p_Var12[2]._M_nxt = (_Hash_node_base *)(uVar4 + (int)p_Var9);
        aVar2 = (((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                   *)local_28->output_lists_)->_M_storage)._M_storage.__align;
        __src = (anon_struct_4_0_00000001_for___align)
                (((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                   *)local_28->output_lists_)->super__Hash_node_base)._M_nxt;
        __n = (int)aVar2 - (int)__src;
        if (aVar2 != __src) {
          memmove(p_Var9,(void *)__src,__n);
        }
        p_Var11 = p_Var12 + 3;
        p_Var12[1]._M_nxt = (_Hash_node_base *)((int)p_Var9 + __n);
        local_28 = (Output_segment *)
                   ((_Hash_node_value_base<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>
                     *)local_28->output_lists_ + 1);
        p_Var12 = p_Var11;
      } while (p_Var3 + 0x57 != p_Var11);
      p_Var12 = *(_Hash_node_base **)((int)&__node->vaddr_ + 4);
      p_Var3[0x57]._M_nxt = *(_Hash_node_base **)&__node->vaddr_;
      p_Var3[0x58]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->paddr_;
      p_Var3[0x5a]._M_nxt = *(_Hash_node_base **)((int)&__node->paddr_ + 4);
      p_Var9 = *(_Hash_node_base **)((int)&__node->memsz_ + 4);
      p_Var3[0x59]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->memsz_;
      p_Var3[0x5c]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->max_align_ + 4);
      p_Var3[0x5b]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->max_align_;
      p_Var3[0x5e]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->min_p_align_ + 4);
      p_Var3[0x5d]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->min_p_align_;
      p_Var3[0x60]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->offset_ + 4);
      p_Var3[0x5f]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->offset_;
      p_Var3[0x62]._M_nxt = p_Var9;
      p_Var9 = *(_Hash_node_base **)((int)&__node->filesz_ + 4);
      p_Var3[0x61]._M_nxt = p_Var12;
      p_Var12 = *(_Hash_node_base **)&__node->filesz_;
      p_Var3[100]._M_nxt = p_Var9;
      p_Var3[99]._M_nxt = p_Var12;
      p_Var3[0x65]._M_nxt = (_Hash_node_base *)__node->type_;
      p_Var3[0x66]._M_nxt = (_Hash_node_base *)__node->flags_;
      bVar1 = *(byte *)&p_Var3[0x67]._M_nxt;
      bVar6 = __node->field_0x19c & 1;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfe | bVar6;
      bVar7 = __node->field_0x19c & 2;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xfc | bVar6 | bVar7;
      bVar8 = __node->field_0x19c & 4;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf8 | bVar6 | bVar7 | bVar8;
      *(byte *)&p_Var3[0x67]._M_nxt = bVar1 & 0xf0 | bVar6 | bVar7 | bVar8 | __node->field_0x19c & 8
      ;
      uVar4 = (segment_states->_M_h)._M_bucket_count;
      __code = (uint)__node % uVar4;
      p_Var10 = (segment_states->_M_h)._M_buckets[__code];
      if (p_Var10 != (__bucket_type)0x0) {
        pOVar5 = (Output_segment *)p_Var10->_M_nxt[1]._M_nxt;
        p_Var13 = p_Var10->_M_nxt;
        while (__node != pOVar5) {
          p_Var12 = p_Var13->_M_nxt;
          if ((p_Var12 == (_Hash_node_base *)0x0) ||
             (pOVar5 = (Output_segment *)p_Var12[1]._M_nxt, p_Var10 = p_Var13, p_Var13 = p_Var12,
             __code != (uint)pOVar5 % uVar4)) goto LAB_000b4178;
        }
        p_Var12 = p_Var10->_M_nxt;
        if (p_Var12 != (_Hash_node_base *)0x0) goto LAB_000b414e;
      }
LAB_000b4178:
      __n_elt = (undefined4 *)operator_new(0xc);
      *__n_elt = 0;
      __n_elt[1] = __node;
      __n_elt[2] = 0;
      std::
      _Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
      ::_M_insert_unique_node
                ((_Hashtable<const_gold::Output_segment*,_std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>,_std::allocator<std::pair<const_gold::Output_segment*_const,_const_gold::Output_segment*>_>,_std::__detail::_Select1st,_std::equal_to<const_gold::Output_segment*>,_std::hash<const_gold::Output_segment*>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
                  *)&local_20,(size_type)segment_states,__code,(__node_type *)__node,
                 (size_type)__n_elt);
      p_Var12 = local_20;
LAB_000b414e:
      local_2c = local_2c + 1;
      p_Var12[2]._M_nxt = p_Var3;
    } while ((this->segment_list_).
             super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
             _M_impl._M_finish != local_2c);
  }
  return;
}


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

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

void MASKED(int param_1,int *param_2)

{
  byte bVar1;
  byte bVar2;
  int *piVar3;
  int iVar4;
  int *piVar5;
  undefined4 *puVar6;
  int iVar7;
  int *piVar8;
  byte bVar9;
  byte bVar10;
  int iVar11;
  int *piVar12;
  undefined1 *puVar13;
  int *piVar14;
  int aiStack_70 [9];
  undefined1 auStack_4c [8];
  int *local_44;
  int *local_40;
  int local_3c;
  int local_38;
  uint local_34;
  undefined **local_30;
  uint *local_2c;
  int *local_28;
  int *local_24;
  int local_20 [4];
  
  local_30 = &__DT_PLTGOT;
  local_44 = local_20;
  puVar13 = auStack_4c;
  local_2c = *(uint **)(param_1 + 0x124);
  if (local_2c != *(uint **)(param_1 + 0x128)) {
    do {
      piVar3 = (int *)*local_2c;
      *(undefined4 *)(puVar13 + -0x10) = 0x1a0;
      *(undefined4 *)(puVar13 + -0x14) = 0xb3f15;
      local_24 = (int *)FUN_001fd480();
      local_40 = local_24 + 0x57;
      local_3c = 0x1c;
      piVar12 = local_24;
      local_28 = piVar3;
      do {
        local_34 = local_28[1] - *local_28;
        *piVar12 = 0;
        piVar12[1] = 0;
        piVar12[2] = 0;
        if ((int)local_34 >> 2 == 0) {
          iVar11 = 0;
        }
        else {
          if (0x3fffffff < (uint)((int)local_34 >> 2)) {
                    /* WARNING: Subroutine does not return */
                    /* try { // try from 000b41b7 to 000b41bb has its CatchHandler @ 000b41bc */
            *(undefined1 **)(puVar13 + -4) = &LAB_000b41bc;
            FUN_00244870();
          }
          *(uint *)(puVar13 + -0x10) = local_34;
                    /* try { // try from 000b3f4c to 000b3f50 has its CatchHandler @ 000b41bc */
          *(undefined4 *)(puVar13 + -0x14) = 0xb3f51;
          iVar11 = FUN_001fd480();
        }
        *piVar12 = iVar11;
        piVar12[1] = iVar11;
        piVar12[2] = local_34 + iVar11;
        iVar4 = *local_28;
        iVar7 = local_28[1] - iVar4;
        local_34 = iVar11;
        if (local_28[1] != iVar4) {
          *(int *)(puVar13 + -8) = iVar7;
          *(int *)(puVar13 + -0xc) = iVar4;
          *(int *)(puVar13 + -0x10) = iVar11;
          *(undefined4 *)(puVar13 + -0x14) = 0xb3f87;
          local_38 = iVar7;
          memmove(*(void **)(puVar13 + -0x10),*(void **)(puVar13 + -0xc),*(size_t *)(puVar13 + -8));
          iVar7 = local_38;
        }
        local_3c = local_3c + -1;
        piVar8 = piVar12 + 3;
        piVar12[1] = local_34 + iVar7;
        local_28 = local_28 + 3;
        piVar12 = piVar8;
      } while (local_40 != piVar8);
      iVar11 = piVar3[0x58];
      local_24[0x57] = piVar3[0x57];
      local_24[0x58] = iVar11;
      iVar11 = piVar3[0x59];
      local_24[0x5a] = piVar3[0x5a];
      iVar4 = piVar3[0x5c];
      local_24[0x59] = iVar11;
      iVar11 = piVar3[0x5b];
      local_24[0x5c] = iVar4;
      iVar4 = piVar3[0x5e];
      local_24[0x5b] = iVar11;
      iVar11 = piVar3[0x5d];
      local_24[0x5e] = iVar4;
      iVar4 = piVar3[0x60];
      local_24[0x5d] = iVar11;
      iVar11 = piVar3[0x5f];
      local_24[0x60] = iVar4;
      iVar4 = piVar3[0x62];
      local_24[0x5f] = iVar11;
      iVar11 = piVar3[0x61];
      local_24[0x62] = iVar4;
      iVar4 = piVar3[100];
      local_24[0x61] = iVar11;
      iVar11 = piVar3[99];
      local_24[100] = iVar4;
      local_24[99] = iVar11;
      local_24[0x65] = piVar3[0x65];
      local_24[0x66] = piVar3[0x66];
      bVar1 = *(byte *)(local_24 + 0x67);
      bVar9 = *(byte *)(piVar3 + 0x67) & 1;
      *(byte *)(local_24 + 0x67) = bVar1 & 0xfe | bVar9;
      bVar10 = *(byte *)(piVar3 + 0x67) & 2;
      *(byte *)(local_24 + 0x67) = bVar1 & 0xfc | bVar9 | bVar10;
      bVar2 = *(byte *)(piVar3 + 0x67);
      *(byte *)(local_24 + 0x67) = bVar1 & 0xf8 | bVar9 | bVar10 | bVar2 & 4;
      *(byte *)(local_24 + 0x67) =
           bVar1 & 0xf0 | bVar9 | bVar10 | bVar2 & 4 | *(byte *)(piVar3 + 0x67) & 8;
      local_34 = param_2[1];
      local_28 = (int *)((uint)piVar3 % local_34);
      piVar12 = *(int **)(*param_2 + (int)local_28 * 4);
      if (piVar12 != (int *)0x0) {
        piVar8 = (int *)((int *)*piVar12)[1];
        piVar14 = (int *)*piVar12;
        while (piVar3 != piVar8) {
          piVar5 = (int *)*piVar14;
          if ((piVar5 == (int *)0x0) ||
             (piVar8 = (int *)piVar5[1], piVar12 = piVar14, piVar14 = piVar5,
             local_28 != (int *)((uint)piVar8 % local_34))) goto LAB_000b4178;
        }
        iVar11 = *piVar12;
        if (iVar11 != 0) goto LAB_000b414e;
      }
LAB_000b4178:
      *(undefined4 *)(puVar13 + -0x10) = 0xc;
      *(undefined4 *)(puVar13 + -0x14) = 0xb4185;
      puVar6 = (undefined4 *)FUN_001fd480();
      *puVar6 = 0;
      puVar6[1] = piVar3;
      puVar6[2] = 0;
      *(undefined4 *)(puVar13 + -0xc) = 1;
      *(undefined4 **)(puVar13 + -0x10) = puVar6;
      *(int **)(puVar13 + -0x14) = piVar3;
      *(int **)(puVar13 + -0x18) = local_28;
      *(int **)(puVar13 + -0x1c) = param_2;
      *(int **)(puVar13 + -0x20) = local_44;
      *(undefined4 *)(puVar13 + -0x24) = 0xb41a9;
      FUN_000be1e0();
      puVar13 = puVar13 + -4;
      iVar11 = local_20[0];
LAB_000b414e:
      local_2c = local_2c + 1;
      *(int **)(iVar11 + 8) = local_24;
    } while (*(uint **)(param_1 + 0x128) != local_2c);
  }
  return;
}

