
/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: _M_insert<(anonymous namespace)::Mips_got_entry<32, false>* const&,
   std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous
   namespace)::Mips_got_entry<32, false>*, true> > > >
   DWARF original prototype:
   pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>
   _M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * this, Mips_got_entry<32,_false> * * __v,
   _AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>
   * __node_gen, true_type param_5, size_type __n_elt) */

pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>
 __thiscall
std::
_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
::
_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>
          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
           *this,type *__v)

{
  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  *p_Var1;
  byte bVar2;
  uint uVar3;
  key_type pMVar4;
  long *plVar5;
  long lVar6;
  char cVar7;
  __node_base *p_Var8;
  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
  *p_Var9;
  ulong uVar10;
  long *plVar11;
  ulong uVar12;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>
  *this_00;
  ulong uVar13;
  key_type *__k;
  byte *pbVar14;
  ulong __n;
  pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>
  pVar15;
  pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>
  pVar16;
  
  pMVar4 = *(key_type *)__v->__data;
  uVar3 = pMVar4->symndx_;
  uVar10 = (ulong)(uVar3 + 0x40000);
  if (pMVar4->tls_type_ != '\x02') {
    if (uVar3 == 0xffffffff) {
      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;
    }
    else {
      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;
    }
    uVar10 = 0x1505;
    bVar2 = *pbVar14;
    while (bVar2 != 0) {
      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;
      bVar2 = pbVar14[1];
      pbVar14 = pbVar14 + 1;
    }
    uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10;
  }
  uVar12 = uVar10 % *(ulong *)(this + 8);
  p_Var8 = _M_find_before_node(this,uVar12,(key_type *)__v,uVar10);
  if ((p_Var8 != (__node_base *)0x0) && (p_Var8->_M_nxt != (_Hash_node_base *)0x0)) {
    pVar15._8_8_ = 0;
    pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)
             (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)
             p_Var8->_M_nxt;
    return pVar15;
  }
  pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
  _M_cur = (__node_type *)operator_new(0x18);
  uVar13 = *(ulong *)(this + 0x18);
  __n = *(ulong *)(this + 8);
  *(long *)&(pVar16.first.
             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*>
       = 0;
  ((__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)
  ((long)&(pVar16.first.
           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur
          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->
  _M_storage = *__v;
  cVar7 = __detail::_Prime_rehash_policy::_M_need_rehash
                    ((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1);
  if (cVar7 == '\0') {
    p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
               **)this;
  }
  else {
    if (this_00 ==
        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>
         *)0x1) {
      p_Var9 = this + 0x30;
      *(undefined8 *)(this + 0x30) = 0;
    }
    else {
                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */
      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                *)__detail::
                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>
                  ::_M_allocate_buckets(this_00,__n);
    }
    plVar11 = *(long **)(this + 0x10);
    *(undefined8 *)(this + 0x10) = 0;
    if (plVar11 != (long *)0x0) {
      uVar12 = 0;
      do {
        while( true ) {
          plVar5 = (long *)*plVar11;
          uVar13 = (ulong)plVar11[2] % (ulong)this_00;
          p_Var1 = p_Var9 + uVar13 * 8;
          if (*(long **)p_Var1 == (long *)0x0) break;
          *plVar11 = **(long **)p_Var1;
          **(undefined8 **)p_Var1 = plVar11;
          uVar13 = uVar12;
LAB_00296484:
          plVar11 = plVar5;
          uVar12 = uVar13;
          if (plVar5 == (long *)0x0) goto LAB_002964d0;
        }
        *plVar11 = *(long *)(this + 0x10);
        *(long **)(this + 0x10) = plVar11;
        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
          **)p_Var1 = this + 0x10;
        if (*plVar11 == 0) goto LAB_00296484;
        *(long **)(p_Var9 + uVar12 * 8) = plVar11;
        plVar11 = plVar5;
        uVar12 = uVar13;
      } while (plVar5 != (long *)0x0);
    }
LAB_002964d0:
    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
          **)this != this + 0x30) {
      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                        **)this);
    }
    *(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>
      **)(this + 8) = this_00;
    uVar12 = uVar10 % (ulong)this_00;
    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
      **)this = p_Var9;
  }
  p_Var1 = p_Var9 + uVar12 * 8;
  (pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
  _M_cur)->_M_hash_code = uVar10;
  if (*(long **)p_Var1 == (long *)0x0) {
    lVar6 = *(long *)(this + 0x10);
    *(__node_type **)(this + 0x10) =
         pVar16.first.
         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur;
    *(long *)&(pVar16.first.
               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
              _M_cur)->
              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6
    ;
    if (lVar6 != 0) {
      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =
           pVar16.first.
           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur
      ;
    }
    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
      **)p_Var1 = this + 0x10;
  }
  else {
    *(long *)&(pVar16.first.
               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
              _M_cur)->
              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =
         **(long **)p_Var1;
    (*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->
    _M_cur = pVar16.first.
             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.
             _M_cur;
  }
  *(long *)(this + 0x18) = *(long *)(this + 0x18) + 1;
  pVar16._8_8_ = 1;
  return pVar16;
}



undefined1  [16] FUN_00296350(long *param_1,long *param_2)

{
  long *plVar1;
  byte bVar2;
  uint uVar3;
  uint *puVar4;
  long lVar5;
  long lVar6;
  long *plVar7;
  char cVar8;
  ulong *puVar9;
  long *plVar10;
  ulong uVar11;
  long *plVar12;
  ulong uVar13;
  ulong extraout_RDX;
  ulong uVar14;
  byte *pbVar15;
  undefined1 auVar16 [16];
  undefined1 auVar17 [16];
  
  puVar4 = (uint *)*param_2;
  uVar3 = puVar4[1];
  uVar11 = (ulong)(uVar3 + 0x40000);
  if ((char)puVar4[4] != '\x02') {
    if (uVar3 == 0xffffffff) {
      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);
    }
    else {
      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];
    }
    uVar11 = 0x1505;
    bVar2 = *pbVar15;
    while (bVar2 != 0) {
      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;
      bVar2 = pbVar15[1];
      pbVar15 = pbVar15 + 1;
    }
    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;
  }
  uVar13 = uVar11 % (ulong)param_1[1];
  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);
  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {
    auVar16._8_8_ = 0;
    auVar16._0_8_ = *puVar9;
    return auVar16;
  }
  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);
  lVar5 = param_1[3];
  lVar6 = param_1[1];
  *auVar17._0_8_ = 0;
  auVar17._0_8_[1] = *param_2;
  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);
  if (cVar8 == '\0') {
    plVar10 = (long *)*param_1;
  }
  else {
    if (extraout_RDX == 1) {
      plVar10 = param_1 + 6;
      param_1[6] = 0;
    }
    else {
                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */
      plVar10 = (long *)FUN_00292490(extraout_RDX);
    }
    plVar12 = (long *)param_1[2];
    param_1[2] = 0;
    if (plVar12 != (long *)0x0) {
      uVar13 = 0;
      do {
        while( true ) {
          plVar7 = (long *)*plVar12;
          uVar14 = (ulong)plVar12[2] % extraout_RDX;
          plVar1 = plVar10 + uVar14;
          if ((long *)*plVar1 == (long *)0x0) break;
          *plVar12 = *(long *)*plVar1;
          *(long **)*plVar1 = plVar12;
          uVar14 = uVar13;
LAB_00296484:
          plVar12 = plVar7;
          uVar13 = uVar14;
          if (plVar7 == (long *)0x0) goto LAB_002964d0;
        }
        *plVar12 = param_1[2];
        param_1[2] = (long)plVar12;
        *plVar1 = (long)(param_1 + 2);
        if (*plVar12 == 0) goto LAB_00296484;
        plVar10[uVar13] = (long)plVar12;
        plVar12 = plVar7;
        uVar13 = uVar14;
      } while (plVar7 != (long *)0x0);
    }
LAB_002964d0:
    if ((long *)*param_1 != param_1 + 6) {
      FUN_0049e330();
    }
    param_1[1] = extraout_RDX;
    uVar13 = uVar11 % extraout_RDX;
    *param_1 = (long)plVar10;
  }
  plVar12 = plVar10 + uVar13;
  auVar17._0_8_[2] = uVar11;
  if ((long *)*plVar12 == (long *)0x0) {
    lVar5 = param_1[2];
    param_1[2] = (long)auVar17._0_8_;
    *auVar17._0_8_ = lVar5;
    if (lVar5 != 0) {
      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;
    }
    *plVar12 = (long)(param_1 + 2);
  }
  else {
    *auVar17._0_8_ = *(long *)*plVar12;
    *(long **)*plVar12 = auVar17._0_8_;
  }
  param_1[3] = param_1[3] + 1;
  auVar17._8_8_ = 1;
  return auVar17;
}


PUSH R15
PUSH R14
MOV R14,RSI
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
SUB RSP,0x8
MOV RAX,qword ptr [RSI]
MOV EDX,dword ptr [RAX + 0x4]
CMP byte ptr [RAX + 0x10],0x2
LEA EBP,[RDX + 0x40000]
JZ 0x0029639d
MOV RCX,qword ptr [RAX + 0x8]
CMP EDX,-0x1
JZ 0x00296530
MOV RSI,qword ptr [RCX + 0x8]
CMP byte ptr [RSI],0x0
MOV ECX,0x1505
JNZ 0x002963e0
MOV EBP,dword ptr [RAX]
SHL RBP,0x10
XOR RBP,RDX
XOR RBP,RCX
XOR EDX,EDX
MOV RAX,RBP
MOV RCX,RBP
MOV RDI,RBX
DIV qword ptr [RBX + 0x8]
MOV R13,RDX
MOV RDX,R14
MOV RSI,R13
CALL 0x0028cf90
TEST RAX,RAX
JZ 0x00296400
MOV RAX,qword ptr [RAX]
XOR EDX,EDX
TEST RAX,RAX
JZ 0x00296400
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RBP,RCX
ADD RSI,0x1
SHL RBP,0x5
ADD RBP,RCX
MOVZX ECX,byte ptr [RSI + -0x1]
ADD RCX,RBP
CMP byte ptr [RSI],0x0
JZ 0x00296391
JMP 0x002963e0
MOV EDI,0x18
CALL 0x0049cb60
MOV RDX,qword ptr [RBX + 0x18]
MOV RSI,qword ptr [RBX + 0x8]
LEA RDI,[RBX + 0x20]
MOV qword ptr [RAX],0x0
MOV R12,RAX
MOV RAX,qword ptr [R14]
MOV ECX,0x1
MOV R15,qword ptr [RBX + 0x28]
MOV qword ptr [R12 + 0x8],RAX
CALL 0x004dc8c0
MOV R14,RDX
TEST AL,AL
JZ 0x00296540
CMP RDX,0x1
JZ 0x00296580
MOV RDI,RDX
CALL 0x00292490
MOV R15,RAX
LEA R10,[RBX + 0x30]
MOV RCX,qword ptr [RBX + 0x10]
MOV qword ptr [RBX + 0x10],0x0
TEST RCX,RCX
JZ 0x002964d0
XOR R8D,R8D
LEA R9,[RBX + 0x10]
JMP 0x0029648c
MOV RDX,qword ptr [RSI]
MOV qword ptr [RCX],RDX
MOV RAX,qword ptr [RAX]
MOV qword ptr [RAX],RCX
MOV RCX,RDI
TEST RDI,RDI
JZ 0x002964d0
MOV RAX,qword ptr [RCX + 0x10]
XOR EDX,EDX
MOV RDI,qword ptr [RCX]
DIV R14
LEA RAX,[R15 + RDX*0x8]
MOV RSI,qword ptr [RAX]
TEST RSI,RSI
JNZ 0x00296478
MOV RSI,qword ptr [RBX + 0x10]
MOV qword ptr [RCX],RSI
MOV qword ptr [RBX + 0x10],RCX
MOV qword ptr [RAX],R9
CMP qword ptr [RCX],0x0
JZ 0x00296548
MOV qword ptr [R15 + R8*0x8],RCX
MOV R8,RDX
MOV RCX,RDI
TEST RDI,RDI
JNZ 0x0029648c
NOP dword ptr [RAX + RAX*0x1]
MOV RDI,qword ptr [RBX]
CMP RDI,R10
JZ 0x002964dd
CALL 0x0049e330
MOV RAX,RBP
XOR EDX,EDX
MOV qword ptr [RBX + 0x8],R14
DIV R14
MOV qword ptr [RBX],R15
MOV R13,RDX
LEA RCX,[R15 + R13*0x8]
MOV qword ptr [R12 + 0x10],RBP
MOV RAX,qword ptr [RCX]
TEST RAX,RAX
JZ 0x00296550
MOV RAX,qword ptr [RAX]
MOV qword ptr [R12],RAX
MOV RAX,qword ptr [RCX]
MOV qword ptr [RAX],R12
ADD qword ptr [RBX + 0x18],0x1
ADD RSP,0x8
MOV RAX,R12
MOV EDX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RSI,qword ptr [RCX]
JMP 0x00296387
MOV R15,qword ptr [RBX]
JMP 0x002964ef
MOV R8,RDX
JMP 0x00296484
MOV RAX,qword ptr [RBX + 0x10]
MOV qword ptr [RBX + 0x10],R12
MOV qword ptr [R12],RAX
TEST RAX,RAX
JZ 0x0029656f
MOV RAX,qword ptr [RAX + 0x10]
XOR EDX,EDX
DIV qword ptr [RBX + 0x8]
MOV qword ptr [R15 + RDX*0x8],R12
LEA RAX,[RBX + 0x10]
MOV qword ptr [RCX],RAX
JMP 0x0029650d
LEA R15,[RBX + 0x30]
MOV qword ptr [RBX + 0x30],0x0
MOV R10,R15
JMP 0x0029645a
(translation_unit "undefined1  [16] FUN_00296350(long *param_1,long *param_2)\n\n{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  uint *puVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  char cVar8;\n  ulong *puVar9;\n  long *plVar10;\n  ulong uVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong extraout_RDX;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined1 auVar16 [16];\n  undefined1 auVar17 [16];\n  \n  puVar4 = (uint *)*param_2;\n  uVar3 = puVar4[1];\n  uVar11 = (ulong)(uVar3 + 0x40000);\n  if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }\n  uVar13 = uVar11 % (ulong)param_1[1];\n  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);\n  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }\n  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);\n  lVar5 = param_1[3];\n  lVar6 = param_1[1];\n  *auVar17._0_8_ = 0;\n  auVar17._0_8_[1] = *param_2;\n  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);\n  if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }\n  plVar12 = plVar10 + uVar13;\n  auVar17._0_8_[2] = uVar11;\n  if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }\n  param_1[3] = param_1[3] + 1;\n  auVar17._8_8_ = 1;\n  return auVar17;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_00296350(long *param_1,long *param_2)" (call_expression "FUN_00296350(long *param_1,long *param_2)" identifier (argument_list "(long *param_1,long *param_2)" ( (binary_expression "long *param_1" identifier * identifier) , (binary_expression "long *param_2" identifier * identifier) ))) ;) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  uint *puVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  char cVar8;\n  ulong *puVar9;\n  long *plVar10;\n  ulong uVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong extraout_RDX;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined1 auVar16 [16];\n  undefined1 auVar17 [16];\n  \n  puVar4 = (uint *)*param_2;\n  uVar3 = puVar4[1];\n  uVar11 = (ulong)(uVar3 + 0x40000);\n  if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }\n  uVar13 = uVar11 % (ulong)param_1[1];\n  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);\n  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }\n  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);\n  lVar5 = param_1[3];\n  lVar6 = param_1[1];\n  *auVar17._0_8_ = 0;\n  auVar17._0_8_[1] = *param_2;\n  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);\n  if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }\n  plVar12 = plVar10 + uVar13;\n  auVar17._0_8_[2] = uVar11;\n  if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }\n  param_1[3] = param_1[3] + 1;\n  auVar17._8_8_ = 1;\n  return auVar17;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "ulong *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined1 auVar16 [16];" type_identifier (array_declarator "auVar16 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar17 [16];" type_identifier (array_declarator "auVar17 [16]" identifier [ number_literal ]) ;) (expression_statement "puVar4 = (uint *)*param_2;" (assignment_expression "puVar4 = (uint *)*param_2" identifier = (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar3 = puVar4[1];" (assignment_expression "uVar3 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = (ulong)(uVar3 + 0x40000);" (assignment_expression "uVar11 = (ulong)(uVar3 + 0x40000)" identifier = (call_expression "(ulong)(uVar3 + 0x40000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + 0x40000)" ( (binary_expression "uVar3 + 0x40000" identifier + number_literal) )))) ;) (if_statement "if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }" if (parenthesized_expression "((char)puVar4[4] != '\x02')" ( (binary_expression "(char)puVar4[4] != '\x02'" (cast_expression "(char)puVar4[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar4[4]" identifier [ number_literal ])) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }" { (if_statement "if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" if (parenthesized_expression "(uVar3 == 0xffffffff)" ( (binary_expression "uVar3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }" { (expression_statement "pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);" (assignment_expression "pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2)" identifier = (cast_expression "(byte *)**(undefined8 **)(puVar4 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(puVar4 + 2)" * (pointer_expression "*(undefined8 **)(puVar4 + 2)" * (cast_expression "(undefined8 **)(puVar4 + 2)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" else (compound_statement "{\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" { (expression_statement "pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];" (assignment_expression "pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1]" identifier = (cast_expression "(byte *)(*(undefined8 **)(puVar4 + 2))[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined8 **)(puVar4 + 2))[1]" (parenthesized_expression "(*(undefined8 **)(puVar4 + 2))" ( (pointer_expression "*(undefined8 **)(puVar4 + 2)" * (cast_expression "(undefined8 **)(puVar4 + 2)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) )) [ number_literal ]))) ;) }))) (expression_statement "uVar11 = 0x1505;" (assignment_expression "uVar11 = 0x1505" identifier = number_literal) ;) (expression_statement "bVar2 = *pbVar15;" (assignment_expression "bVar2 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (while_statement "while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }" { (expression_statement "uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;" (assignment_expression "uVar11 = (ulong)*pbVar15 + uVar11 * 0x21" identifier = (binary_expression "(ulong)*pbVar15 + uVar11 * 0x21" (binary_expression "(ulong)*pbVar15" (parenthesized_expression "(ulong)" ( identifier )) * identifier) + (binary_expression "uVar11 * 0x21" identifier * number_literal))) ;) (expression_statement "bVar2 = pbVar15[1];" (assignment_expression "bVar2 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;" (assignment_expression "uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11" identifier = (binary_expression "(ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11" (binary_expression "(ulong)*puVar4 << 0x10 ^ (ulong)uVar3" (binary_expression "(ulong)*puVar4 << 0x10" (binary_expression "(ulong)*puVar4" (parenthesized_expression "(ulong)" ( identifier )) * identifier) << number_literal) ^ (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ^ identifier)) ;) })) (expression_statement "uVar13 = uVar11 % (ulong)param_1[1];" (assignment_expression "uVar13 = uVar11 % (ulong)param_1[1]" identifier = (binary_expression "uVar11 % (ulong)param_1[1]" identifier % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);" (assignment_expression "puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11)" identifier = (cast_expression "(ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0028cf90(param_1,uVar13,param_2,uVar11)" identifier (argument_list "(param_1,uVar13,param_2,uVar11)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }" if (parenthesized_expression "((puVar9 != (ulong *)0x0) && (*puVar9 != 0))" ( (binary_expression "(puVar9 != (ulong *)0x0) && (*puVar9 != 0)" (parenthesized_expression "(puVar9 != (ulong *)0x0)" ( (binary_expression "puVar9 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*puVar9 != 0)" ( (binary_expression "*puVar9 != 0" (pointer_expression "*puVar9" * identifier) != number_literal) ))) )) (compound_statement "{\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }" { (expression_statement "auVar16._8_8_ = 0;" (assignment_expression "auVar16._8_8_ = 0" (field_expression "auVar16._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar16._0_8_ = *puVar9;" (assignment_expression "auVar16._0_8_ = *puVar9" (field_expression "auVar16._0_8_" identifier . field_identifier) = (pointer_expression "*puVar9" * identifier)) ;) (return_statement "return auVar16;" return identifier ;) })) (expression_statement "auVar17._0_8_ = (long *)FUN_0049cb60(0x18);" (assignment_expression "auVar17._0_8_ = (long *)FUN_0049cb60(0x18)" (field_expression "auVar17._0_8_" identifier . field_identifier) = (cast_expression "(long *)FUN_0049cb60(0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "lVar5 = param_1[3];" (assignment_expression "lVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "lVar6 = param_1[1];" (assignment_expression "lVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*auVar17._0_8_ = 0;" (assignment_expression "*auVar17._0_8_ = 0" (pointer_expression "*auVar17._0_8_" * (field_expression "auVar17._0_8_" identifier . field_identifier)) = number_literal) ;) (expression_statement "auVar17._0_8_[1] = *param_2;" (assignment_expression "auVar17._0_8_[1] = *param_2" (subscript_expression "auVar17._0_8_[1]" (field_expression "auVar17._0_8_" identifier . field_identifier) [ number_literal ]) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);" (assignment_expression "cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1)" identifier = (call_expression "FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1)" identifier (argument_list "(param_1 + 4,lVar6,lVar5,1)" ( (binary_expression "param_1 + 4" identifier + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    plVar10 = (long *)*param_1;\n  }" { (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }) (else_clause "else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" else (compound_statement "{\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" { (if_statement "if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" if (parenthesized_expression "(extraout_RDX == 1)" ( (binary_expression "extraout_RDX == 1" identifier == number_literal) )) (compound_statement "{\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }" { (expression_statement "plVar10 = param_1 + 6;" (assignment_expression "plVar10 = param_1 + 6" identifier = (binary_expression "param_1 + 6" identifier + number_literal)) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" else (compound_statement "{\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" { comment (expression_statement "plVar10 = (long *)FUN_00292490(extraout_RDX);" (assignment_expression "plVar10 = (long *)FUN_00292490(extraout_RDX)" identifier = (cast_expression "(long *)FUN_00292490(extraout_RDX)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00292490(extraout_RDX)" identifier (argument_list "(extraout_RDX)" ( identifier ))))) ;) }))) (expression_statement "plVar12 = (long *)param_1[2];" (assignment_expression "plVar12 = (long *)param_1[2]" identifier = (cast_expression "(long *)param_1[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar12 != (long *)0x0)" ( (binary_expression "plVar12 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);" do (compound_statement "{\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      }" { (while_statement "while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }" { (expression_statement "plVar7 = (long *)*plVar12;" (assignment_expression "plVar7 = (long *)*plVar12" identifier = (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) ;) (expression_statement "uVar14 = (ulong)plVar12[2] % extraout_RDX;" (assignment_expression "uVar14 = (ulong)plVar12[2] % extraout_RDX" identifier = (binary_expression "(ulong)plVar12[2] % extraout_RDX" (cast_expression "(ulong)plVar12[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar12[2]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "plVar1 = plVar10 + uVar14;" (assignment_expression "plVar1 = plVar10 + uVar14" identifier = (binary_expression "plVar10 + uVar14" identifier + identifier)) ;) (if_statement "if ((long *)*plVar1 == (long *)0x0) break;" if (parenthesized_expression "((long *)*plVar1 == (long *)0x0)" ( (binary_expression "(long *)*plVar1 == (long *)0x0" (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*plVar12 = *(long *)*plVar1;" (assignment_expression "*plVar12 = *(long *)*plVar1" (pointer_expression "*plVar12" * identifier) = (pointer_expression "*(long *)*plVar1" * (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier)))) ;) (expression_statement "*(long **)*plVar1 = plVar12;" (assignment_expression "*(long **)*plVar1 = plVar12" (pointer_expression "*(long **)*plVar1" * (cast_expression "(long **)*plVar1" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar1" * identifier))) = identifier) ;) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (labeled_statement "LAB_00296484:\n          plVar12 = plVar7;" statement_identifier : (expression_statement "plVar12 = plVar7;" (assignment_expression "plVar12 = plVar7" identifier = identifier) ;)) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) (if_statement "if (plVar7 == (long *)0x0) goto LAB_002964d0;" if (parenthesized_expression "(plVar7 == (long *)0x0)" ( (binary_expression "plVar7 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002964d0;" goto statement_identifier ;)) })) (expression_statement "*plVar12 = param_1[2];" (assignment_expression "*plVar12 = param_1[2]" (pointer_expression "*plVar12" * identifier) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = (long)plVar12;" (assignment_expression "param_1[2] = (long)plVar12" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*plVar1 = (long)(param_1 + 2);" (assignment_expression "*plVar1 = (long)(param_1 + 2)" (pointer_expression "*plVar1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (*plVar12 == 0) goto LAB_00296484;" if (parenthesized_expression "(*plVar12 == 0)" ( (binary_expression "*plVar12 == 0" (pointer_expression "*plVar12" * identifier) == number_literal) )) (goto_statement "goto LAB_00296484;" goto statement_identifier ;)) (expression_statement "plVar10[uVar13] = (long)plVar12;" (assignment_expression "plVar10[uVar13] = (long)plVar12" (subscript_expression "plVar10[uVar13]" identifier [ identifier ]) = (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar12 = plVar7;" (assignment_expression "plVar12 = plVar7" identifier = identifier) ;) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) }) while (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }" statement_identifier : (if_statement "if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }" if (parenthesized_expression "((long *)*param_1 != param_1 + 6)" ( (binary_expression "(long *)*param_1 != param_1 + 6" (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) != (binary_expression "param_1 + 6" identifier + number_literal)) )) (compound_statement "{\n      FUN_0049e330();\n    }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "param_1[1] = extraout_RDX;" (assignment_expression "param_1[1] = extraout_RDX" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar13 = uVar11 % extraout_RDX;" (assignment_expression "uVar13 = uVar11 % extraout_RDX" identifier = (binary_expression "uVar11 % extraout_RDX" identifier % identifier)) ;) (expression_statement "*param_1 = (long)plVar10;" (assignment_expression "*param_1 = (long)plVar10" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "plVar12 = plVar10 + uVar13;" (assignment_expression "plVar12 = plVar10 + uVar13" identifier = (binary_expression "plVar10 + uVar13" identifier + identifier)) ;) (expression_statement "auVar17._0_8_[2] = uVar11;" (assignment_expression "auVar17._0_8_[2] = uVar11" (subscript_expression "auVar17._0_8_[2]" (field_expression "auVar17._0_8_" identifier . field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" if (parenthesized_expression "((long *)*plVar12 == (long *)0x0)" ( (binary_expression "(long *)*plVar12 == (long *)0x0" (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }" { (expression_statement "lVar5 = param_1[2];" (assignment_expression "lVar5 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = (long)auVar17._0_8_;" (assignment_expression "param_1[2] = (long)auVar17._0_8_" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(long)auVar17._0_8_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "auVar17._0_8_" identifier . field_identifier))) ;) (expression_statement "*auVar17._0_8_ = lVar5;" (assignment_expression "*auVar17._0_8_ = lVar5" (pointer_expression "*auVar17._0_8_" * (field_expression "auVar17._0_8_" identifier . field_identifier)) = identifier) ;) (if_statement "if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }" { (expression_statement "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;" (assignment_expression "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_" (subscript_expression "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]]" identifier [ (binary_expression "*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]" (pointer_expression "*(ulong *)(lVar5 + 0x10)" * (cast_expression "(ulong *)(lVar5 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ]) = (cast_expression "(long)auVar17._0_8_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "auVar17._0_8_" identifier . field_identifier))) ;) })) (expression_statement "*plVar12 = (long)(param_1 + 2);" (assignment_expression "*plVar12 = (long)(param_1 + 2)" (pointer_expression "*plVar12" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" else (compound_statement "{\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" { (expression_statement "*auVar17._0_8_ = *(long *)*plVar12;" (assignment_expression "*auVar17._0_8_ = *(long *)*plVar12" (pointer_expression "*auVar17._0_8_" * (field_expression "auVar17._0_8_" identifier . field_identifier)) = (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier)))) ;) (expression_statement "*(long **)*plVar12 = auVar17._0_8_;" (assignment_expression "*(long **)*plVar12 = auVar17._0_8_" (pointer_expression "*(long **)*plVar12" * (cast_expression "(long **)*plVar12" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar12" * identifier))) = (field_expression "auVar17._0_8_" identifier . field_identifier)) ;) }))) (expression_statement "param_1[3] = param_1[3] + 1;" (assignment_expression "param_1[3] = param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "auVar17._8_8_ = 1;" (assignment_expression "auVar17._8_8_ = 1" (field_expression "auVar17._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar17;" return identifier ;) }))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* DWARF original name: _M_insert<(anonymous namespace)::Mips_got_entry<32, false>* const&,\n   std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous\n   namespace)::Mips_got_entry<32, false>*, true> > > >\n   DWARF original prototype:\n   pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n   _M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n   * this, Mips_got_entry<32,_false> * * __v,\n   _AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>\n   * __node_gen, true_type param_5, size_type __n_elt) */\n\npair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n __thiscall\nstd::\n_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)\n\n{\n  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;\n  byte bVar2;\n  uint uVar3;\n  key_type pMVar4;\n  long *plVar5;\n  long lVar6;\n  char cVar7;\n  __node_base *p_Var8;\n  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;\n  ulong uVar10;\n  long *plVar11;\n  ulong uVar12;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n  *this_00;\n  ulong uVar13;\n  key_type *__k;\n  byte *pbVar14;\n  ulong __n;\n  pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar15;\n  pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar16;\n  \n  pMVar4 = *(key_type *)__v->__data;\n  uVar3 = pMVar4->symndx_;\n  uVar10 = (ulong)(uVar3 + 0x40000);\n  if (pMVar4->tls_type_ != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n    }\n    else {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }\n    uVar10 = 0x1505;\n    bVar2 = *pbVar14;\n    while (bVar2 != 0) {\n      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;\n      bVar2 = pbVar14[1];\n      pbVar14 = pbVar14 + 1;\n    }\n    uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10;\n  }\n  uVar12 = uVar10 % *(ulong *)(this + 8);\n  p_Var8 = _M_find_before_node(this,uVar12,(key_type *)__v,uVar10);\n  if ((p_Var8 != (__node_base *)0x0) && (p_Var8->_M_nxt != (_Hash_node_base *)0x0)) {\n    pVar15._8_8_ = 0;\n    pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             p_Var8->_M_nxt;\n    return pVar15;\n  }\n  pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur = (__node_type *)operator_new(0x18);\n  uVar13 = *(ulong *)(this + 0x18);\n  __n = *(ulong *)(this + 8);\n  *(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*>\n       = 0;\n  ((__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->\n  _M_storage = *__v;\n  cVar7 = __detail::_Prime_rehash_policy::_M_need_rehash\n                    ((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1);\n  if (cVar7 == '\0') {\n    p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this;\n  }\n  else {\n    if (this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1) {\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }\n    plVar11 = *(long **)(this + 0x10);\n    *(undefined8 *)(this + 0x10) = 0;\n    if (plVar11 != (long *)0x0) {\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }\nLAB_002964d0:\n    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }\n    *(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00;\n    uVar12 = uVar10 % (ulong)this_00;\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9;\n  }\n  p_Var1 = p_Var9 + uVar12 * 8;\n  (pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur)->_M_hash_code = uVar10;\n  if (*(long **)p_Var1 == (long *)0x0) {\n    lVar6 = *(long *)(this + 0x10);\n    *(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur;\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6\n    ;\n    if (lVar6 != 0) {\n      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;\n    }\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10;\n  }\n  else {\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1;\n    (*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur;\n  }\n  *(long *)(this + 0x18) = *(long *)(this + 0x18) + 1;\n  pVar16._8_8_ = 1;\n  return pVar16;\n}\n\n" comment comment (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n __thiscall" statement_identifier (ERROR "::_Node_iterator<(anonymous_namespace):" : : (binary_expression "_Node_iterator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Mips_got_entry<32,_false>*,_true,_true>,_bool>\n __thiscall" (comma_expression "Mips_got_entry<32,_false>*,_true,_true>,_bool>\n __thiscall" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (comma_expression "_false>*,_true,_true>,_bool>\n __thiscall" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) , (binary_expression "_true>,_bool>\n __thiscall" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier))) ;)) (labeled_statement "std::\n_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::\n_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std:" : : (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) :) : (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std:" : : (comma_expression "_Hashtable_traits<true,_true,_true>_>\n::\n_M_insert<(anonymous_namespace)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n::\n_M_insert<(anonymous_namespace)" identifier , (binary_expression "_true>_>\n::\n_M_insert<(anonymous_namespace)" (binary_expression "_true>_>\n::\n_M_insert" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry<32,_false>*_const&,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*_const&,_std" (binary_expression "_false>*_const" identifier > (pointer_expression "*_const" * identifier)) & (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_AllocNode<std::allocator<std:" : : (binary_expression "_AllocNode<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (labeled_statement "__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" statement_identifier (ERROR "::_Hash_node<(anonymous_namespace):" : : (binary_expression "_Hash_node<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" (comma_expression "Mips_got_entry<32,_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_true>_>_>_>\n          (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" (binary_expression "_false>*,_true>_>_>_" (binary_expression "_false>*,_true>_>_" (binary_expression "_false>*,_true>_" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) > identifier) > identifier) > identifier) > (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n           *this,type *__v)" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n           *this,type *__v" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n           *this,type *__v" identifier , (comma_expression "_true>_>\n           *this,type *__v" (binary_expression "_true>_>\n           *this" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "type *__v" identifier * identifier)))) )))) ;))))))))) (compound_statement "{\n  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;\n  byte bVar2;\n  uint uVar3;\n  key_type pMVar4;\n  long *plVar5;\n  long lVar6;\n  char cVar7;\n  __node_base *p_Var8;\n  _Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;\n  ulong uVar10;\n  long *plVar11;\n  ulong uVar12;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n  *this_00;\n  ulong uVar13;\n  key_type *__k;\n  byte *pbVar14;\n  ulong __n;\n  pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar15;\n  pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar16;\n  \n  pMVar4 = *(key_type *)__v->__data;\n  uVar3 = pMVar4->symndx_;\n  uVar10 = (ulong)(uVar3 + 0x40000);\n  if (pMVar4->tls_type_ != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n    }\n    else {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }\n    uVar10 = 0x1505;\n    bVar2 = *pbVar14;\n    while (bVar2 != 0) {\n      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;\n      bVar2 = pbVar14[1];\n      pbVar14 = pbVar14 + 1;\n    }\n    uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10;\n  }\n  uVar12 = uVar10 % *(ulong *)(this + 8);\n  p_Var8 = _M_find_before_node(this,uVar12,(key_type *)__v,uVar10);\n  if ((p_Var8 != (__node_base *)0x0) && (p_Var8->_M_nxt != (_Hash_node_base *)0x0)) {\n    pVar15._8_8_ = 0;\n    pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             p_Var8->_M_nxt;\n    return pVar15;\n  }\n  pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur = (__node_type *)operator_new(0x18);\n  uVar13 = *(ulong *)(this + 0x18);\n  __n = *(ulong *)(this + 8);\n  *(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*>\n       = 0;\n  ((__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->\n  _M_storage = *__v;\n  cVar7 = __detail::_Prime_rehash_policy::_M_need_rehash\n                    ((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1);\n  if (cVar7 == '\0') {\n    p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this;\n  }\n  else {\n    if (this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1) {\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }\n    plVar11 = *(long **)(this + 0x10);\n    *(undefined8 *)(this + 0x10) = 0;\n    if (plVar11 != (long *)0x0) {\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }\nLAB_002964d0:\n    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }\n    *(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00;\n    uVar12 = uVar10 % (ulong)this_00;\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9;\n  }\n  p_Var1 = p_Var9 + uVar12 * 8;\n  (pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur)->_M_hash_code = uVar10;\n  if (*(long **)p_Var1 == (long *)0x0) {\n    lVar6 = *(long *)(this + 0x10);\n    *(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur;\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6\n    ;\n    if (lVar6 != 0) {\n      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;\n    }\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10;\n  }\n  else {\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1;\n    (*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur;\n  }\n  *(long *)(this + 0x18) = *(long *)(this + 0x18) + 1;\n  pVar16._8_8_ = 1;\n  return pVar16;\n}" { (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : :) (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  *p_Var1;" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  *p_Var1" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  *p_Var1" identifier , (binary_expression "_true>_>\n  *p_Var1" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*p_Var1" * identifier)))) ;)))))) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "key_type pMVar4;" type_identifier identifier ;) (declaration "long *plVar5;" (sized_type_specifier "long" long) (pointer_declarator "*plVar5" * identifier) ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "__node_base *p_Var8;" type_identifier (pointer_declarator "*p_Var8" * identifier) ;) (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : :) (labeled_statement "__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;" statement_identifier (ERROR "::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std:" : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_std" identifier > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n  *p_Var9;" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n  *p_Var9" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n  *p_Var9" identifier , (binary_expression "_true>_>\n  *p_Var9" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*p_Var9" * identifier)))) ;)))))) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "ulong uVar12;" type_identifier identifier ;) (ERROR "_Hashtable_alloc<std::allocator<std::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : :) (expression_statement "__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n  *this_00;" (comma_expression "__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n  *this_00" identifier (ERROR "::_Hash_node<(anonymous_namespace)::Got_page_entry*" : : (binary_expression "_Hash_node<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : identifier *) , (binary_expression "_true>_>_>\n  *this_00" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (pointer_expression "*this_00" * identifier))) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "key_type *__k;" type_identifier (pointer_declarator "*__k" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "ulong __n;" type_identifier identifier ;) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar15;" statement_identifier (ERROR "::_Node_iterator<(anonymous_namespace):" : : (binary_expression "_Node_iterator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar15;" (comma_expression "Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar15" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (comma_expression "_false>*,_true,_true>,_bool>\n  pVar15" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) , (binary_expression "_true>,_bool>\n  pVar15" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier))) ;)) (ERROR "pair<std::" (binary_expression "pair<std" identifier < identifier) : :) (labeled_statement "__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar16;" statement_identifier (ERROR "::_Node_iterator<(anonymous_namespace):" : : (binary_expression "_Node_iterator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) :) : (expression_statement "Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar16;" (comma_expression "Mips_got_entry<32,_false>*,_true,_true>,_bool>\n  pVar16" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (comma_expression "_false>*,_true,_true>,_bool>\n  pVar16" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) , (binary_expression "_true>,_bool>\n  pVar16" (binary_expression "_true>,_bool" identifier > (ERROR "," ,) identifier) > identifier))) ;)) (expression_statement "pMVar4 = *(key_type *)__v->__data;" (assignment_expression "pMVar4 = *(key_type *)__v->__data" identifier = (pointer_expression "*(key_type *)__v->__data" * (cast_expression "(key_type *)__v->__data" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "__v->__data" identifier -> field_identifier)))) ;) (expression_statement "uVar3 = pMVar4->symndx_;" (assignment_expression "uVar3 = pMVar4->symndx_" identifier = (field_expression "pMVar4->symndx_" identifier -> field_identifier)) ;) (expression_statement "uVar10 = (ulong)(uVar3 + 0x40000);" (assignment_expression "uVar10 = (ulong)(uVar3 + 0x40000)" identifier = (call_expression "(ulong)(uVar3 + 0x40000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + 0x40000)" ( (binary_expression "uVar3 + 0x40000" identifier + number_literal) )))) ;) (if_statement "if (pMVar4->tls_type_ != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n    }\n    else {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }\n    uVar10 = 0x1505;\n    bVar2 = *pbVar14;\n    while (bVar2 != 0) {\n      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;\n      bVar2 = pbVar14[1];\n      pbVar14 = pbVar14 + 1;\n    }\n    uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10;\n  }" if (parenthesized_expression "(pMVar4->tls_type_ != '\x02')" ( (binary_expression "pMVar4->tls_type_ != '\x02'" (field_expression "pMVar4->tls_type_" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    if (uVar3 == 0xffffffff) {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n    }\n    else {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }\n    uVar10 = 0x1505;\n    bVar2 = *pbVar14;\n    while (bVar2 != 0) {\n      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;\n      bVar2 = pbVar14[1];\n      pbVar14 = pbVar14 + 1;\n    }\n    uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10;\n  }" { (if_statement "if (uVar3 == 0xffffffff) {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n    }\n    else {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }" if (parenthesized_expression "(uVar3 == 0xffffffff)" ( (binary_expression "uVar3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;\n    }" { (expression_statement "pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_;" (assignment_expression "pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_" identifier = (cast_expression "(byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.name_" (field_expression "(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol" (parenthesized_expression "(((pMVar4->d).sym)->super_Sized_symbol<32>)" ( (binary_expression "((pMVar4->d).sym)->super_Sized_symbol<32>" (binary_expression "((pMVar4->d).sym)->super_Sized_symbol<32" (field_expression "((pMVar4->d).sym)->super_Sized_symbol" (parenthesized_expression "((pMVar4->d).sym)" ( (field_expression "(pMVar4->d).sym" (parenthesized_expression "(pMVar4->d)" ( (field_expression "pMVar4->d" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) < number_literal) > identifier) )) . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }" else (compound_statement "{\n      pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;\n    }" { (expression_statement "pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_;" (assignment_expression "pbVar14 = (byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_" identifier = (cast_expression "(byte *)(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol.version_" (field_expression "(((pMVar4->d).sym)->super_Sized_symbol<32>).super_Symbol" (parenthesized_expression "(((pMVar4->d).sym)->super_Sized_symbol<32>)" ( (binary_expression "((pMVar4->d).sym)->super_Sized_symbol<32>" (binary_expression "((pMVar4->d).sym)->super_Sized_symbol<32" (field_expression "((pMVar4->d).sym)->super_Sized_symbol" (parenthesized_expression "((pMVar4->d).sym)" ( (field_expression "(pMVar4->d).sym" (parenthesized_expression "(pMVar4->d)" ( (field_expression "pMVar4->d" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) < number_literal) > identifier) )) . field_identifier) . field_identifier))) ;) }))) (expression_statement "uVar10 = 0x1505;" (assignment_expression "uVar10 = 0x1505" identifier = number_literal) ;) (expression_statement "bVar2 = *pbVar14;" (assignment_expression "bVar2 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (while_statement "while (bVar2 != 0) {\n      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;\n      bVar2 = pbVar14[1];\n      pbVar14 = pbVar14 + 1;\n    }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;\n      bVar2 = pbVar14[1];\n      pbVar14 = pbVar14 + 1;\n    }" { (expression_statement "uVar10 = (ulong)*pbVar14 + uVar10 * 0x21;" (assignment_expression "uVar10 = (ulong)*pbVar14 + uVar10 * 0x21" identifier = (binary_expression "(ulong)*pbVar14 + uVar10 * 0x21" (binary_expression "(ulong)*pbVar14" (parenthesized_expression "(ulong)" ( identifier )) * identifier) + (binary_expression "uVar10 * 0x21" identifier * number_literal))) ;) (expression_statement "bVar2 = pbVar14[1];" (assignment_expression "bVar2 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar14 = pbVar14 + 1;" (assignment_expression "pbVar14 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10;" (assignment_expression "uVar10 = (ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10" identifier = (binary_expression "(ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3 ^ uVar10" (binary_expression "(ulong)pMVar4->addend_ << 0x10 ^ (ulong)uVar3" (binary_expression "(ulong)pMVar4->addend_ << 0x10" (cast_expression "(ulong)pMVar4->addend_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pMVar4->addend_" identifier -> field_identifier)) << number_literal) ^ (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ^ identifier)) ;) })) (expression_statement "uVar12 = uVar10 % *(ulong *)(this + 8);" (assignment_expression "uVar12 = uVar10 % *(ulong *)(this + 8)" identifier = (binary_expression "uVar10 % *(ulong *)(this + 8)" identifier % (pointer_expression "*(ulong *)(this + 8)" * (cast_expression "(ulong *)(this + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))))) ;) (expression_statement "p_Var8 = _M_find_before_node(this,uVar12,(key_type *)__v,uVar10);" (assignment_expression "p_Var8 = _M_find_before_node(this,uVar12,(key_type *)__v,uVar10)" identifier = (call_expression "_M_find_before_node(this,uVar12,(key_type *)__v,uVar10)" identifier (argument_list "(this,uVar12,(key_type *)__v,uVar10)" ( identifier , identifier , (cast_expression "(key_type *)__v" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if ((p_Var8 != (__node_base *)0x0) && (p_Var8->_M_nxt != (_Hash_node_base *)0x0)) {\n    pVar15._8_8_ = 0;\n    pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             p_Var8->_M_nxt;\n    return pVar15;\n  }" if (parenthesized_expression "((p_Var8 != (__node_base *)0x0) && (p_Var8->_M_nxt != (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var8 != (__node_base *)0x0) && (p_Var8->_M_nxt != (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var8 != (__node_base *)0x0)" ( (binary_expression "p_Var8 != (__node_base *)0x0" identifier != (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var8->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var8->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var8->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    pVar15._8_8_ = 0;\n    pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             p_Var8->_M_nxt;\n    return pVar15;\n  }" { (expression_statement "pVar15._8_8_ = 0;" (assignment_expression "pVar15._8_8_ = 0" (field_expression "pVar15._8_8_" identifier . field_identifier) = number_literal) ;) (ERROR "pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)::" (comma_expression "pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)" (binary_expression "pVar15.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar15.first.super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar15.first.super__Node_iterator_base" (field_expression "pVar15.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_true>.\n    _M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) > (ERROR "." .) (assignment_expression "_M_cur = (_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)" identifier = (call_expression "(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)\n             (_Node_iterator_base<(anonymous_namespace)" (parenthesized_expression "(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>)" ( (comma_expression "_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true" (binary_expression "_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Node_iterator_base<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier))) (ERROR ">" >) )) (argument_list "(_Node_iterator_base<(anonymous_namespace)" ( (binary_expression "_Node_iterator_base<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) )))))) : :) (expression_statement "Mips_got_entry<32,_false>*,_true>)\n             p_Var8->_M_nxt;" (comma_expression "Mips_got_entry<32,_false>*,_true>)\n             p_Var8->_M_nxt" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_true>)\n             p_Var8->_M_nxt" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) > (ERROR ")" )) (field_expression "p_Var8->_M_nxt" identifier -> field_identifier))) ;) (return_statement "return pVar15;" return identifier ;) })) (expression_statement "pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur = (__node_type *)operator_new(0x18);" (comma_expression "pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur = (__node_type *)operator_new(0x18)" (binary_expression "pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar16.first.super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (assignment_expression "_false>*,_true>.\n  _M_cur = (__node_type *)operator_new(0x18)" (field_expression "_false>*,_true>.\n  _M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier) = (cast_expression "(__node_type *)operator_new(0x18)" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x18)" identifier (argument_list "(0x18)" ( number_literal )))))) ;) (expression_statement "uVar13 = *(ulong *)(this + 0x18);" (assignment_expression "uVar13 = *(ulong *)(this + 0x18)" identifier = (pointer_expression "*(ulong *)(this + 0x18)" * (cast_expression "(ulong *)(this + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) ))))) ;) (expression_statement "__n = *(ulong *)(this + 8);" (assignment_expression "__n = *(ulong *)(this + 8)" identifier = (pointer_expression "*(ulong *)(this + 8)" * (cast_expression "(ulong *)(this + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) ;) (expression_statement "*(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*>\n       = 0;" (comma_expression "*(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*>\n       = 0" (binary_expression "*(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "*(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)" (pointer_expression "*(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base" * (cast_expression "(long *)&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base" & (field_expression "(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)->super__Hash_node_value_base" (parenthesized_expression "(pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur)" ( (comma_expression "pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n            _M_cur" (binary_expression "pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n             super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>.\n            _M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) )) -> field_identifier)))) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*>\n       = 0" identifier > (pointer_expression "*>\n       = 0" * (ERROR ">\n       =" > =) number_literal))) ;) (expression_statement "((__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->\n  _M_storage = *__v;" (parenthesized_expression "((__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->\n  _M_storage = *__v" ( (assignment_expression "(__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->\n  _M_storage = *__v" (field_expression "(__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))->\n  _M_storage" (parenthesized_expression "(__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8))" ( (comma_expression "__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32,_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8)" (binary_expression "__aligned_buffer<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "__aligned_buffer<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8)" identifier > (pointer_expression "*> *)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8)" * (ERROR ">" >) (pointer_expression "*)\n  ((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8)" * (ERROR ")" )) (parenthesized_expression "((long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8)" ( (comma_expression "(long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> + 8" (binary_expression "(long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "(long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base<(anonymous_namespace)" (cast_expression "(long)&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base" & (field_expression "(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )->super__Hash_node_value_base" (parenthesized_expression "(pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n          )" ( (comma_expression "pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur" (binary_expression "pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n           super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>._M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) )) -> field_identifier))) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*> + 8" identifier > (pointer_expression "*> + 8" * (ERROR ">" >) (unary_expression "+ 8" + number_literal)))) )))))) )) -> field_identifier) = (pointer_expression "*__v" * identifier)) )) ;) (ERROR "cVar7 = __detail::" (assignment_expression "cVar7 = __detail" identifier = identifier) : :) (labeled_statement "_Prime_rehash_policy::_M_need_rehash\n                    ((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1);" statement_identifier : (ERROR ":" :) (expression_statement "_M_need_rehash\n                    ((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1);" (call_expression "_M_need_rehash\n                    ((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1)" identifier (argument_list "((_Prime_rehash_policy *)(this + 0x20),__n,uVar13,1)" ( (cast_expression "(_Prime_rehash_policy *)(this + 0x20)" ( (type_descriptor "_Prime_rehash_policy *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))) , identifier , identifier , number_literal ))) ;)) (if_statement "if (cVar7 == '\0') {\n    p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this;\n  }\n  else {\n    if (this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1) {\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }\n    plVar11 = *(long **)(this + 0x10);\n    *(undefined8 *)(this + 0x10) = 0;\n    if (plVar11 != (long *)0x0) {\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }\nLAB_002964d0:\n    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }\n    *(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00;\n    uVar12 = uVar10 % (ulong)this_00;\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9;\n  }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this;\n  }" { (expression_statement "p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this;" (assignment_expression "p_Var9 = *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this" identifier = (pointer_expression "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this" * (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n               **)this" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n               **)this" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n               **)this" identifier , (binary_expression "_true>_>\n               **)this" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**)this" * (pointer_expression "*)this" * (ERROR ")" )) identifier))))) )))) ;) }) (else_clause "else {\n    if (this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1) {\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }\n    plVar11 = *(long **)(this + 0x10);\n    *(undefined8 *)(this + 0x10) = 0;\n    if (plVar11 != (long *)0x0) {\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }\nLAB_002964d0:\n    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }\n    *(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00;\n    uVar12 = uVar10 % (ulong)this_00;\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9;\n  }" else (compound_statement "{\n    if (this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1) {\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }\n    plVar11 = *(long **)(this + 0x10);\n    *(undefined8 *)(this + 0x10) = 0;\n    if (plVar11 != (long *)0x0) {\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }\nLAB_002964d0:\n    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }\n    *(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00;\n    uVar12 = uVar10 % (ulong)this_00;\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9;\n  }" { (if_statement "if (this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1) {\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }\n    else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }" if (parenthesized_expression "(this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1)" ( (binary_expression "this_00 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1)" identifier == (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1)" ( (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n         *)0x1" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Got_page_entry" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n      p_Var9 = this + 0x30;\n      *(undefined8 *)(this + 0x30) = 0;\n    }" { (expression_statement "p_Var9 = this + 0x30;" (assignment_expression "p_Var9 = this + 0x30" identifier = (binary_expression "this + 0x30" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(this + 0x30) = 0;" (assignment_expression "*(undefined8 *)(this + 0x30) = 0" (pointer_expression "*(undefined8 *)(this + 0x30)" * (cast_expression "(undefined8 *)(this + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x30)" ( (binary_expression "this + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }" else (compound_statement "{\n                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */\n      p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);\n    }" { comment (expression_statement "p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n);" (assignment_expression "p_Var9 = (_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n)" identifier = (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n)" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                *)__detail::\n                  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*," (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n                *)__detail" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                *)__detail" identifier , (binary_expression "_true>_>\n                *)__detail" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)__detail" * (ERROR ")" )) identifier)))) : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (binary_expression "_Hash_node<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (type_descriptor "Got_page_entry*" type_identifier (abstract_pointer_declarator "*" *)) ,) (binary_expression "_true>_>_>\n                  ::_M_allocate_buckets(this_00,__n)" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets(this_00,__n)" identifier (argument_list "(this_00,__n)" ( identifier , identifier )))) ))) ;) }))) (expression_statement "plVar11 = *(long **)(this + 0x10);" (assignment_expression "plVar11 = *(long **)(this + 0x10)" identifier = (pointer_expression "*(long **)(this + 0x10)" * (cast_expression "(long **)(this + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined8 *)(this + 0x10) = 0;" (assignment_expression "*(undefined8 *)(this + 0x10) = 0" (pointer_expression "*(undefined8 *)(this + 0x10)" * (cast_expression "(undefined8 *)(this + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (plVar11 != (long *)0x0) {\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar12 = 0;\n      do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);\n    }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      } while (plVar5 != (long *)0x0);" do (compound_statement "{\n        while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar11 = *(long *)(this + 0x10);\n        *(long **)(this + 0x10) = plVar11;\n        *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;\n        if (*plVar11 == 0) goto LAB_00296484;\n        *(long **)(p_Var9 + uVar12 * 8) = plVar11;\n        plVar11 = plVar5;\n        uVar12 = uVar13;\n      }" { (while_statement "while( true ) {\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          plVar5 = (long *)*plVar11;\n          uVar13 = (ulong)plVar11[2] % (ulong)this_00;\n          p_Var1 = p_Var9 + uVar13 * 8;\n          if (*(long **)p_Var1 == (long *)0x0) break;\n          *plVar11 = **(long **)p_Var1;\n          **(undefined8 **)p_Var1 = plVar11;\n          uVar13 = uVar12;\nLAB_00296484:\n          plVar11 = plVar5;\n          uVar12 = uVar13;\n          if (plVar5 == (long *)0x0) goto LAB_002964d0;\n        }" { (expression_statement "plVar5 = (long *)*plVar11;" (assignment_expression "plVar5 = (long *)*plVar11" identifier = (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier))) ;) (expression_statement "uVar13 = (ulong)plVar11[2] % (ulong)this_00;" (assignment_expression "uVar13 = (ulong)plVar11[2] % (ulong)this_00" identifier = (binary_expression "(ulong)plVar11[2] % (ulong)this_00" (cast_expression "(ulong)plVar11[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar11[2]" identifier [ number_literal ])) % (cast_expression "(ulong)this_00" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "p_Var1 = p_Var9 + uVar13 * 8;" (assignment_expression "p_Var1 = p_Var9 + uVar13 * 8" identifier = (binary_expression "p_Var9 + uVar13 * 8" identifier + (binary_expression "uVar13 * 8" identifier * number_literal))) ;) (if_statement "if (*(long **)p_Var1 == (long *)0x0) break;" if (parenthesized_expression "(*(long **)p_Var1 == (long *)0x0)" ( (binary_expression "*(long **)p_Var1 == (long *)0x0" (pointer_expression "*(long **)p_Var1" * (cast_expression "(long **)p_Var1" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*plVar11 = **(long **)p_Var1;" (assignment_expression "*plVar11 = **(long **)p_Var1" (pointer_expression "*plVar11" * identifier) = (pointer_expression "**(long **)p_Var1" * (pointer_expression "*(long **)p_Var1" * (cast_expression "(long **)p_Var1" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)))) ;) (expression_statement "**(undefined8 **)p_Var1 = plVar11;" (assignment_expression "**(undefined8 **)p_Var1 = plVar11" (pointer_expression "**(undefined8 **)p_Var1" * (pointer_expression "*(undefined8 **)p_Var1" * (cast_expression "(undefined8 **)p_Var1" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) = identifier) ;) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" identifier = identifier) ;) (labeled_statement "LAB_00296484:\n          plVar11 = plVar5;" statement_identifier : (expression_statement "plVar11 = plVar5;" (assignment_expression "plVar11 = plVar5" identifier = identifier) ;)) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) (if_statement "if (plVar5 == (long *)0x0) goto LAB_002964d0;" if (parenthesized_expression "(plVar5 == (long *)0x0)" ( (binary_expression "plVar5 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002964d0;" goto statement_identifier ;)) })) (expression_statement "*plVar11 = *(long *)(this + 0x10);" (assignment_expression "*plVar11 = *(long *)(this + 0x10)" (pointer_expression "*plVar11" * identifier) = (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(long **)(this + 0x10) = plVar11;" (assignment_expression "*(long **)(this + 0x10) = plVar11" (pointer_expression "*(long **)(this + 0x10)" * (cast_expression "(long **)(this + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10;" (pointer_expression "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10" * (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)p_Var1 = this + 0x10" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n          **)p_Var1 = this + 0x10" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n          **)p_Var1 = this + 0x10" identifier , (binary_expression "_true>_>\n          **)p_Var1 = this + 0x10" (binary_expression "_true>_" identifier > identifier) > (assignment_expression "**)p_Var1 = this + 0x10" (pointer_expression "**)p_Var1" * (pointer_expression "*)p_Var1" * (ERROR ")" )) identifier)) = (binary_expression "this + 0x10" identifier + number_literal))))) ))) ;) (if_statement "if (*plVar11 == 0) goto LAB_00296484;" if (parenthesized_expression "(*plVar11 == 0)" ( (binary_expression "*plVar11 == 0" (pointer_expression "*plVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_00296484;" goto statement_identifier ;)) (expression_statement "*(long **)(p_Var9 + uVar12 * 8) = plVar11;" (assignment_expression "*(long **)(p_Var9 + uVar12 * 8) = plVar11" (pointer_expression "*(long **)(p_Var9 + uVar12 * 8)" * (cast_expression "(long **)(p_Var9 + uVar12 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var9 + uVar12 * 8)" ( (binary_expression "p_Var9 + uVar12 * 8" identifier + (binary_expression "uVar12 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "plVar11 = plVar5;" (assignment_expression "plVar11 = plVar5" identifier = identifier) ;) (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) }) while (parenthesized_expression "(plVar5 != (long *)0x0)" ( (binary_expression "plVar5 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_002964d0:\n    if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }" statement_identifier : (if_statement "if (*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30) {\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }" if (parenthesized_expression "(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30)" ( (pointer_expression "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30)" * (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n          **)this != this + 0x30)" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n          **)this != this + 0x30" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n          **)this != this + 0x30" identifier , (binary_expression "_true>_>\n          **)this != this + 0x30" (binary_expression "_true>_>\n          **)this" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**)this" * (pointer_expression "*)this" * (ERROR ")" )) identifier))) != (binary_expression "this + 0x30" identifier + number_literal)))) ))) )) (compound_statement "{\n      operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);\n    }" { (expression_statement "operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this);" (call_expression "operator_delete(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this)" identifier (argument_list "(*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this)" ( (pointer_expression "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this)" * (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                        **)this)" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n                        **)this" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                        **)this" identifier , (binary_expression "_true>_>\n                        **)this" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "**)this" * (pointer_expression "*)this" * (ERROR ")" )) identifier))))) ))) ))) ;) }))) (expression_statement "*(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00;" (assignment_expression "*(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8) = this_00" (pointer_expression "*(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8)" * (call_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)(this + 8)" (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **)" ( (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_>\n      **" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_>_" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true>_" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,_true" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Got_page_entry" : : identifier) * (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "**" * (pointer_expression "*" * identifier))) )) (argument_list "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar12 = uVar10 % (ulong)this_00;" (assignment_expression "uVar12 = uVar10 % (ulong)this_00" identifier = (binary_expression "uVar10 % (ulong)this_00" identifier % (cast_expression "(ulong)this_00" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9;" (pointer_expression "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9" * (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)this = p_Var9" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n      **)this = p_Var9" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n      **)this = p_Var9" identifier , (binary_expression "_true>_>\n      **)this = p_Var9" (binary_expression "_true>_" identifier > identifier) > (assignment_expression "**)this = p_Var9" (pointer_expression "**)this" * (pointer_expression "*)this" * (ERROR ")" )) identifier)) = identifier)))) ))) ;) }))) (expression_statement "p_Var1 = p_Var9 + uVar12 * 8;" (assignment_expression "p_Var1 = p_Var9 + uVar12 * 8" identifier = (binary_expression "p_Var9 + uVar12 * 8" identifier + (binary_expression "uVar12 * 8" identifier * number_literal))) ;) (expression_statement "(pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur)->_M_hash_code = uVar10;" (assignment_expression "(pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur)->_M_hash_code = uVar10" (field_expression "(pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur)->_M_hash_code" (parenthesized_expression "(pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur)" ( (comma_expression "pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n  _M_cur" (binary_expression "pVar16.first.super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar16.first.super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>.\n  _M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) )) -> field_identifier) = identifier) ;) (if_statement "if (*(long **)p_Var1 == (long *)0x0) {\n    lVar6 = *(long *)(this + 0x10);\n    *(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur;\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6\n    ;\n    if (lVar6 != 0) {\n      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;\n    }\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10;\n  }\n  else {\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1;\n    (*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur;\n  }" if (parenthesized_expression "(*(long **)p_Var1 == (long *)0x0)" ( (binary_expression "*(long **)p_Var1 == (long *)0x0" (pointer_expression "*(long **)p_Var1" * (cast_expression "(long **)p_Var1" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar6 = *(long *)(this + 0x10);\n    *(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur;\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6\n    ;\n    if (lVar6 != 0) {\n      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;\n    }\n    *(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10;\n  }" { (expression_statement "lVar6 = *(long *)(this + 0x10);" (assignment_expression "lVar6 = *(long *)(this + 0x10)" identifier = (pointer_expression "*(long *)(this + 0x10)" * (cast_expression "(long *)(this + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur;" (comma_expression "*(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur" (binary_expression "*(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (assignment_expression "*(__node_type **)(this + 0x10) =\n         pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)" (pointer_expression "*(__node_type **)(this + 0x10)" * (cast_expression "(__node_type **)(this + 0x10)" ( (type_descriptor "__node_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = (binary_expression "pVar16.first.\n         super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n         super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>._M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) ;) (expression_statement "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6\n    ;" (comma_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> = lVar6" (binary_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)" (pointer_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" * (cast_expression "(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" & (field_expression "(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" (parenthesized_expression "(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)" ( (comma_expression "pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur" (binary_expression "pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n               super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>.\n              _M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) )) -> field_identifier)))) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*> = lVar6" identifier > (pointer_expression "*> = lVar6" * (ERROR "> =" > =) identifier))) ;) (if_statement "if (lVar6 != 0) {\n      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      *(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;\n    }" { (expression_statement "*(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur\n      ;" (comma_expression "*(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>._M_cur" (binary_expression "*(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (assignment_expression "*(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8) =\n           pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)" (pointer_expression "*(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8)" * (cast_expression "(__node_type **)(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8)" ( (type_descriptor "__node_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8)" ( (binary_expression "p_Var9 + (*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8" identifier + (binary_expression "(*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)) * 8" (parenthesized_expression "(*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8))" ( (binary_expression "*(ulong *)(lVar6 + 0x10) % *(ulong *)(this + 8)" (pointer_expression "*(ulong *)(lVar6 + 0x10)" * (cast_expression "(ulong *)(lVar6 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) % (pointer_expression "*(ulong *)(this + 8)" * (cast_expression "(ulong *)(this + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) ))))) )) * number_literal)) )))) = (binary_expression "pVar16.first.\n           super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n           super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>._M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) ;) })) (expression_statement "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10;" (pointer_expression "*(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10" * (parenthesized_expression "(_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n      **)p_Var1 = this + 0x10" ( (ERROR "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)::Mips_got_entry<32,_false>*,_std::allocator<(anonymous_namespace)::Mips_got_entry<32,_false>*>,_std::__detail::_Identity,_(anonymous_namespace)::Mips_got_entry_eq<32,_false>,_(anonymous_namespace)::Mips_got_entry_hash<32,_false>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32,_false>*,_(anonymous_namespace)" (binary_expression "_Hashtable<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Hashtable<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_(anonymous_namespace)" identifier > (pointer_expression "*,_(anonymous_namespace)" * (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))))) : : (comma_expression "Mips_got_entry<32,_false>*,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*,_std" identifier > (pointer_expression "*,_std" * (ERROR "," ,) identifier))) : : (binary_expression "allocator<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) : : (comma_expression "Mips_got_entry<32,_false>*>,_std" (binary_expression "Mips_got_entry<32" identifier < number_literal) , (binary_expression "_false>*>,_std" identifier > (pointer_expression "*>,_std" * (ERROR ">," > ,) identifier))) : : identifier : : (comma_expression "_Identity,_(anonymous_namespace)" identifier , (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier )))) : : (comma_expression "Mips_got_entry_eq<32,_false>,_(anonymous_namespace)" (binary_expression "Mips_got_entry_eq<32" identifier < number_literal) , (binary_expression "_false>,_(anonymous_namespace)" identifier > (ERROR "," ,) (call_expression "_(anonymous_namespace)" identifier (argument_list "(anonymous_namespace)" ( identifier ))))) : : (comma_expression "Mips_got_entry_hash<32,_false>,_std" (binary_expression "Mips_got_entry_hash<32" identifier < number_literal) , (binary_expression "_false>,_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<true,_true,_true>_>\n      **)p_Var1 = this + 0x10" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n      **)p_Var1 = this + 0x10" identifier , (binary_expression "_true>_>\n      **)p_Var1 = this + 0x10" (binary_expression "_true>_" identifier > identifier) > (assignment_expression "**)p_Var1 = this + 0x10" (pointer_expression "**)p_Var1" * (pointer_expression "*)p_Var1" * (ERROR ")" )) identifier)) = (binary_expression "this + 0x10" identifier + number_literal))))) ))) ;) }) (else_clause "else {\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1;\n    (*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur;\n  }" else (compound_statement "{\n    *(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1;\n    (*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur;\n  }" { (expression_statement "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1;" (comma_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32,_false>*> =\n         **(long **)p_Var1" (binary_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base<(anonymous_namespace)" (pointer_expression "*(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" * (cast_expression "(long *)&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" & (field_expression "(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)->\n              super__Hash_node_value_base" (parenthesized_expression "(pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur)" ( (comma_expression "pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n              _M_cur" (binary_expression "pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "pVar16.first.\n               super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n               super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>.\n              _M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) )) -> field_identifier)))) < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*> =\n         **(long **)p_Var1" identifier > (pointer_expression "*> =\n         **(long **)p_Var1" * (ERROR "> =" > =) (pointer_expression "**(long **)p_Var1" * (pointer_expression "*(long **)p_Var1" * (cast_expression "(long **)p_Var1" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)))))) ;) (expression_statement "(*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur;" (parenthesized_expression "(*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur" ( (comma_expression "*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>.\n             _M_cur" (binary_expression "*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (assignment_expression "*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur = pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)" (pointer_expression "*(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur" * (field_expression "(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)->\n    _M_cur" (parenthesized_expression "(_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1)" ( (comma_expression "_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true> **)p_Var1" (binary_expression "_Node_iterator_base<(anonymous_namespace)::Mips_got_entry<32" (binary_expression "_Node_iterator_base<(anonymous_namespace)" identifier < (parenthesized_expression "(anonymous_namespace)" ( identifier ))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (binary_expression "_false>*,_true> **)p_Var1" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) > (pointer_expression "**)p_Var1" * (pointer_expression "*)p_Var1" * (ERROR ")" )) identifier)))) )) -> field_identifier)) = (binary_expression "pVar16.first.\n             super__Node_iterator_base<(anonymous_namespace)" (field_expression "pVar16.first.\n             super__Node_iterator_base" (field_expression "pVar16.first" identifier . field_identifier) . field_identifier) < (parenthesized_expression "(anonymous_namespace)" ( identifier )))) (ERROR "::Mips_got_entry" : : identifier) < number_literal) , (field_expression "_false>*,_true>.\n             _M_cur" (binary_expression "_false>*,_true" identifier > (pointer_expression "*,_true" * (ERROR "," ,) identifier)) (ERROR ">" >) . field_identifier)) )) ;) }))) (expression_statement "*(long *)(this + 0x18) = *(long *)(this + 0x18) + 1;" (assignment_expression "*(long *)(this + 0x18) = *(long *)(this + 0x18) + 1" (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = (binary_expression "*(long *)(this + 0x18) + 1" (pointer_expression "*(long *)(this + 0x18)" * (cast_expression "(long *)(this + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pVar16._8_8_ = 1;" (assignment_expression "pVar16._8_8_ = 1" (field_expression "pVar16._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return pVar16;" return identifier ;) }))
(translation_unit "undefined1  [16] FUN_00296350(long *param_1,long *param_2)\n\n{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  uint *puVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  char cVar8;\n  ulong *puVar9;\n  long *plVar10;\n  ulong uVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong extraout_RDX;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined1 auVar16 [16];\n  undefined1 auVar17 [16];\n  \n  puVar4 = (uint *)*param_2;\n  uVar3 = puVar4[1];\n  uVar11 = (ulong)(uVar3 + 0x40000);\n  if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }\n  uVar13 = uVar11 % (ulong)param_1[1];\n  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);\n  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }\n  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);\n  lVar5 = param_1[3];\n  lVar6 = param_1[1];\n  *auVar17._0_8_ = 0;\n  auVar17._0_8_[1] = *param_2;\n  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);\n  if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }\n  plVar12 = plVar10 + uVar13;\n  auVar17._0_8_[2] = uVar11;\n  if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }\n  param_1[3] = param_1[3] + 1;\n  auVar17._8_8_ = 1;\n  return auVar17;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_00296350(long *param_1,long *param_2)" (call_expression "FUN_00296350(long *param_1,long *param_2)" identifier (argument_list "(long *param_1,long *param_2)" ( (binary_expression "long *param_1" identifier * identifier) , (binary_expression "long *param_2" identifier * identifier) ))) ;) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  uint *puVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  char cVar8;\n  ulong *puVar9;\n  long *plVar10;\n  ulong uVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong extraout_RDX;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined1 auVar16 [16];\n  undefined1 auVar17 [16];\n  \n  puVar4 = (uint *)*param_2;\n  uVar3 = puVar4[1];\n  uVar11 = (ulong)(uVar3 + 0x40000);\n  if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }\n  uVar13 = uVar11 % (ulong)param_1[1];\n  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);\n  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }\n  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);\n  lVar5 = param_1[3];\n  lVar6 = param_1[1];\n  *auVar17._0_8_ = 0;\n  auVar17._0_8_[1] = *param_2;\n  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);\n  if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }\n  plVar12 = plVar10 + uVar13;\n  auVar17._0_8_[2] = uVar11;\n  if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }\n  param_1[3] = param_1[3] + 1;\n  auVar17._8_8_ = 1;\n  return auVar17;\n}" { (declaration "long *plVar1;" (sized_type_specifier "long" long) (pointer_declarator "*plVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "ulong *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined1 auVar16 [16];" type_identifier (array_declarator "auVar16 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 auVar17 [16];" type_identifier (array_declarator "auVar17 [16]" identifier [ number_literal ]) ;) (expression_statement "puVar4 = (uint *)*param_2;" (assignment_expression "puVar4 = (uint *)*param_2" identifier = (cast_expression "(uint *)*param_2" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar3 = puVar4[1];" (assignment_expression "uVar3 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = (ulong)(uVar3 + 0x40000);" (assignment_expression "uVar11 = (ulong)(uVar3 + 0x40000)" identifier = (call_expression "(ulong)(uVar3 + 0x40000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + 0x40000)" ( (binary_expression "uVar3 + 0x40000" identifier + number_literal) )))) ;) (if_statement "if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }" if (parenthesized_expression "((char)puVar4[4] != '\x02')" ( (binary_expression "(char)puVar4[4] != '\x02'" (cast_expression "(char)puVar4[4]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar4[4]" identifier [ number_literal ])) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }" { (if_statement "if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" if (parenthesized_expression "(uVar3 == 0xffffffff)" ( (binary_expression "uVar3 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }" { (expression_statement "pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);" (assignment_expression "pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2)" identifier = (cast_expression "(byte *)**(undefined8 **)(puVar4 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined8 **)(puVar4 + 2)" * (pointer_expression "*(undefined8 **)(puVar4 + 2)" * (cast_expression "(undefined8 **)(puVar4 + 2)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))))) ;) }) (else_clause "else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" else (compound_statement "{\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" { (expression_statement "pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];" (assignment_expression "pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1]" identifier = (cast_expression "(byte *)(*(undefined8 **)(puVar4 + 2))[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined8 **)(puVar4 + 2))[1]" (parenthesized_expression "(*(undefined8 **)(puVar4 + 2))" ( (pointer_expression "*(undefined8 **)(puVar4 + 2)" * (cast_expression "(undefined8 **)(puVar4 + 2)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) )) [ number_literal ]))) ;) }))) (expression_statement "uVar11 = 0x1505;" (assignment_expression "uVar11 = 0x1505" identifier = number_literal) ;) (expression_statement "bVar2 = *pbVar15;" (assignment_expression "bVar2 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (while_statement "while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }" { (expression_statement "uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;" (assignment_expression "uVar11 = (ulong)*pbVar15 + uVar11 * 0x21" identifier = (binary_expression "(ulong)*pbVar15 + uVar11 * 0x21" (binary_expression "(ulong)*pbVar15" (parenthesized_expression "(ulong)" ( identifier )) * identifier) + (binary_expression "uVar11 * 0x21" identifier * number_literal))) ;) (expression_statement "bVar2 = pbVar15[1];" (assignment_expression "bVar2 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;" (assignment_expression "uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11" identifier = (binary_expression "(ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11" (binary_expression "(ulong)*puVar4 << 0x10 ^ (ulong)uVar3" (binary_expression "(ulong)*puVar4 << 0x10" (binary_expression "(ulong)*puVar4" (parenthesized_expression "(ulong)" ( identifier )) * identifier) << number_literal) ^ (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ^ identifier)) ;) })) (expression_statement "uVar13 = uVar11 % (ulong)param_1[1];" (assignment_expression "uVar13 = uVar11 % (ulong)param_1[1]" identifier = (binary_expression "uVar11 % (ulong)param_1[1]" identifier % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ])))) ;) (expression_statement "puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);" (assignment_expression "puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11)" identifier = (cast_expression "(ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0028cf90(param_1,uVar13,param_2,uVar11)" identifier (argument_list "(param_1,uVar13,param_2,uVar11)" ( identifier , identifier , identifier , identifier ))))) ;) (if_statement "if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }" if (parenthesized_expression "((puVar9 != (ulong *)0x0) && (*puVar9 != 0))" ( (binary_expression "(puVar9 != (ulong *)0x0) && (*puVar9 != 0)" (parenthesized_expression "(puVar9 != (ulong *)0x0)" ( (binary_expression "puVar9 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*puVar9 != 0)" ( (binary_expression "*puVar9 != 0" (pointer_expression "*puVar9" * identifier) != number_literal) ))) )) (compound_statement "{\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }" { (expression_statement "auVar16._8_8_ = 0;" (assignment_expression "auVar16._8_8_ = 0" (field_expression "auVar16._8_8_" identifier . field_identifier) = number_literal) ;) (expression_statement "auVar16._0_8_ = *puVar9;" (assignment_expression "auVar16._0_8_ = *puVar9" (field_expression "auVar16._0_8_" identifier . field_identifier) = (pointer_expression "*puVar9" * identifier)) ;) (return_statement "return auVar16;" return identifier ;) })) (expression_statement "auVar17._0_8_ = (long *)FUN_0049cb60(0x18);" (assignment_expression "auVar17._0_8_ = (long *)FUN_0049cb60(0x18)" (field_expression "auVar17._0_8_" identifier . field_identifier) = (cast_expression "(long *)FUN_0049cb60(0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0049cb60(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "lVar5 = param_1[3];" (assignment_expression "lVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "lVar6 = param_1[1];" (assignment_expression "lVar6 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*auVar17._0_8_ = 0;" (assignment_expression "*auVar17._0_8_ = 0" (pointer_expression "*auVar17._0_8_" * (field_expression "auVar17._0_8_" identifier . field_identifier)) = number_literal) ;) (expression_statement "auVar17._0_8_[1] = *param_2;" (assignment_expression "auVar17._0_8_[1] = *param_2" (subscript_expression "auVar17._0_8_[1]" (field_expression "auVar17._0_8_" identifier . field_identifier) [ number_literal ]) = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);" (assignment_expression "cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1)" identifier = (call_expression "FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1)" identifier (argument_list "(param_1 + 4,lVar6,lVar5,1)" ( (binary_expression "param_1 + 4" identifier + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    plVar10 = (long *)*param_1;\n  }" { (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) }) (else_clause "else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" else (compound_statement "{\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" { (if_statement "if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" if (parenthesized_expression "(extraout_RDX == 1)" ( (binary_expression "extraout_RDX == 1" identifier == number_literal) )) (compound_statement "{\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }" { (expression_statement "plVar10 = param_1 + 6;" (assignment_expression "plVar10 = param_1 + 6" identifier = (binary_expression "param_1 + 6" identifier + number_literal)) ;) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" else (compound_statement "{\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" { (expression_statement "plVar10 = (long *)FUN_00292490(extraout_RDX);" (assignment_expression "plVar10 = (long *)FUN_00292490(extraout_RDX)" identifier = (cast_expression "(long *)FUN_00292490(extraout_RDX)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00292490(extraout_RDX)" identifier (argument_list "(extraout_RDX)" ( identifier ))))) ;) }))) (expression_statement "plVar12 = (long *)param_1[2];" (assignment_expression "plVar12 = (long *)param_1[2]" identifier = (cast_expression "(long *)param_1[2]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar12 != (long *)0x0)" ( (binary_expression "plVar12 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }" { (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (do_statement "do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);" do (compound_statement "{\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      }" { (while_statement "while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }" { (expression_statement "plVar7 = (long *)*plVar12;" (assignment_expression "plVar7 = (long *)*plVar12" identifier = (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier))) ;) (expression_statement "uVar14 = (ulong)plVar12[2] % extraout_RDX;" (assignment_expression "uVar14 = (ulong)plVar12[2] % extraout_RDX" identifier = (binary_expression "(ulong)plVar12[2] % extraout_RDX" (cast_expression "(ulong)plVar12[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar12[2]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "plVar1 = plVar10 + uVar14;" (assignment_expression "plVar1 = plVar10 + uVar14" identifier = (binary_expression "plVar10 + uVar14" identifier + identifier)) ;) (if_statement "if ((long *)*plVar1 == (long *)0x0) break;" if (parenthesized_expression "((long *)*plVar1 == (long *)0x0)" ( (binary_expression "(long *)*plVar1 == (long *)0x0" (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*plVar12 = *(long *)*plVar1;" (assignment_expression "*plVar12 = *(long *)*plVar1" (pointer_expression "*plVar12" * identifier) = (pointer_expression "*(long *)*plVar1" * (cast_expression "(long *)*plVar1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar1" * identifier)))) ;) (expression_statement "*(long **)*plVar1 = plVar12;" (assignment_expression "*(long **)*plVar1 = plVar12" (pointer_expression "*(long **)*plVar1" * (cast_expression "(long **)*plVar1" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar1" * identifier))) = identifier) ;) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" identifier = identifier) ;) (labeled_statement "LAB_00296484:\n          plVar12 = plVar7;" statement_identifier : (expression_statement "plVar12 = plVar7;" (assignment_expression "plVar12 = plVar7" identifier = identifier) ;)) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) (if_statement "if (plVar7 == (long *)0x0) goto LAB_002964d0;" if (parenthesized_expression "(plVar7 == (long *)0x0)" ( (binary_expression "plVar7 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002964d0;" goto statement_identifier ;)) })) (expression_statement "*plVar12 = param_1[2];" (assignment_expression "*plVar12 = param_1[2]" (pointer_expression "*plVar12" * identifier) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = (long)plVar12;" (assignment_expression "param_1[2] = (long)plVar12" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*plVar1 = (long)(param_1 + 2);" (assignment_expression "*plVar1 = (long)(param_1 + 2)" (pointer_expression "*plVar1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (*plVar12 == 0) goto LAB_00296484;" if (parenthesized_expression "(*plVar12 == 0)" ( (binary_expression "*plVar12 == 0" (pointer_expression "*plVar12" * identifier) == number_literal) )) (goto_statement "goto LAB_00296484;" goto statement_identifier ;)) (expression_statement "plVar10[uVar13] = (long)plVar12;" (assignment_expression "plVar10[uVar13] = (long)plVar12" (subscript_expression "plVar10[uVar13]" identifier [ identifier ]) = (cast_expression "(long)plVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar12 = plVar7;" (assignment_expression "plVar12 = plVar7" identifier = identifier) ;) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" identifier = identifier) ;) }) while (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }" statement_identifier : (if_statement "if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }" if (parenthesized_expression "((long *)*param_1 != param_1 + 6)" ( (binary_expression "(long *)*param_1 != param_1 + 6" (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) != (binary_expression "param_1 + 6" identifier + number_literal)) )) (compound_statement "{\n      FUN_0049e330();\n    }" { (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "param_1[1] = extraout_RDX;" (assignment_expression "param_1[1] = extraout_RDX" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar13 = uVar11 % extraout_RDX;" (assignment_expression "uVar13 = uVar11 % extraout_RDX" identifier = (binary_expression "uVar11 % extraout_RDX" identifier % identifier)) ;) (expression_statement "*param_1 = (long)plVar10;" (assignment_expression "*param_1 = (long)plVar10" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)plVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) }))) (expression_statement "plVar12 = plVar10 + uVar13;" (assignment_expression "plVar12 = plVar10 + uVar13" identifier = (binary_expression "plVar10 + uVar13" identifier + identifier)) ;) (expression_statement "auVar17._0_8_[2] = uVar11;" (assignment_expression "auVar17._0_8_[2] = uVar11" (subscript_expression "auVar17._0_8_[2]" (field_expression "auVar17._0_8_" identifier . field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" if (parenthesized_expression "((long *)*plVar12 == (long *)0x0)" ( (binary_expression "(long *)*plVar12 == (long *)0x0" (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }" { (expression_statement "lVar5 = param_1[2];" (assignment_expression "lVar5 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = (long)auVar17._0_8_;" (assignment_expression "param_1[2] = (long)auVar17._0_8_" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(long)auVar17._0_8_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "auVar17._0_8_" identifier . field_identifier))) ;) (expression_statement "*auVar17._0_8_ = lVar5;" (assignment_expression "*auVar17._0_8_ = lVar5" (pointer_expression "*auVar17._0_8_" * (field_expression "auVar17._0_8_" identifier . field_identifier)) = identifier) ;) (if_statement "if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }" if (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }" { (expression_statement "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;" (assignment_expression "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_" (subscript_expression "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]]" identifier [ (binary_expression "*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]" (pointer_expression "*(ulong *)(lVar5 + 0x10)" * (cast_expression "(ulong *)(lVar5 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) % (cast_expression "(ulong)param_1[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ]) = (cast_expression "(long)auVar17._0_8_" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "auVar17._0_8_" identifier . field_identifier))) ;) })) (expression_statement "*plVar12 = (long)(param_1 + 2);" (assignment_expression "*plVar12 = (long)(param_1 + 2)" (pointer_expression "*plVar12" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" else (compound_statement "{\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" { (expression_statement "*auVar17._0_8_ = *(long *)*plVar12;" (assignment_expression "*auVar17._0_8_ = *(long *)*plVar12" (pointer_expression "*auVar17._0_8_" * (field_expression "auVar17._0_8_" identifier . field_identifier)) = (pointer_expression "*(long *)*plVar12" * (cast_expression "(long *)*plVar12" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar12" * identifier)))) ;) (expression_statement "*(long **)*plVar12 = auVar17._0_8_;" (assignment_expression "*(long **)*plVar12 = auVar17._0_8_" (pointer_expression "*(long **)*plVar12" * (cast_expression "(long **)*plVar12" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar12" * identifier))) = (field_expression "auVar17._0_8_" identifier . field_identifier)) ;) }))) (expression_statement "param_1[3] = param_1[3] + 1;" (assignment_expression "param_1[3] = param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "auVar17._8_8_ = 1;" (assignment_expression "auVar17._8_8_ = 1" (field_expression "auVar17._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar17;" return identifier ;) }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) ))) ;) (compound_statement { (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT)) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (pointer_expression * IDENT)) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (field_expression IDENT . field_identifier)) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) % IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (field_expression IDENT . field_identifier))) ;) (expression_statement (assignment_expression (pointer_expression * (field_expression IDENT . field_identifier)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (field_expression IDENT . field_identifier))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (field_expression IDENT . field_identifier)) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = (field_expression IDENT . field_identifier)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (return_statement return IDENT ;) }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (expression_statement "FUN_00296350(long *param_1,long *param_2)" (call_expression "FUN_00296350(long *param_1,long *param_2)" (identifier "FUN_00296350") (argument_list "(long *param_1,long *param_2)" (( "(") (binary_expression "long *param_1" (identifier "long") (* "*") (identifier "param_1")) (, ",") (binary_expression "long *param_2" (identifier "long") (* "*") (identifier "param_2")) () ")"))) (; "")) (compound_statement "{\n  long *plVar1;\n  byte bVar2;\n  uint uVar3;\n  uint *puVar4;\n  long lVar5;\n  long lVar6;\n  long *plVar7;\n  char cVar8;\n  ulong *puVar9;\n  long *plVar10;\n  ulong uVar11;\n  long *plVar12;\n  ulong uVar13;\n  ulong extraout_RDX;\n  ulong uVar14;\n  byte *pbVar15;\n  undefined1 auVar16 [16];\n  undefined1 auVar17 [16];\n  \n  puVar4 = (uint *)*param_2;\n  uVar3 = puVar4[1];\n  uVar11 = (ulong)(uVar3 + 0x40000);\n  if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }\n  uVar13 = uVar11 % (ulong)param_1[1];\n  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);\n  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }\n  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);\n  lVar5 = param_1[3];\n  lVar6 = param_1[1];\n  *auVar17._0_8_ = 0;\n  auVar17._0_8_[1] = *param_2;\n  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);\n  if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }\n  plVar12 = plVar10 + uVar13;\n  auVar17._0_8_[2] = uVar11;\n  if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }\n  param_1[3] = param_1[3] + 1;\n  auVar17._8_8_ = 1;\n  return auVar17;\n}" ({ "{") (declaration "long *plVar1;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar1" (* "*") (identifier "plVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "ulong *puVar9;" (type_identifier "ulong") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "long *plVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar12" (* "*") (identifier "plVar12")) (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong extraout_RDX;" (type_identifier "ulong") (identifier "extraout_RDX") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "undefined1 auVar16 [16];" (type_identifier "undefined1") (array_declarator "auVar16 [16]" (identifier "auVar16") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 auVar17 [16];" (type_identifier "undefined1") (array_declarator "auVar17 [16]" (identifier "auVar17") ([ "[") (number_literal "16") (] "]")) (; ";")) (expression_statement "puVar4 = (uint *)*param_2;" (assignment_expression "puVar4 = (uint *)*param_2" (identifier "puVar4") (= "=") (cast_expression "(uint *)*param_2" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "uVar3 = puVar4[1];" (assignment_expression "uVar3 = puVar4[1]" (identifier "uVar3") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = (ulong)(uVar3 + 0x40000);" (assignment_expression "uVar11 = (ulong)(uVar3 + 0x40000)" (identifier "uVar11") (= "=") (call_expression "(ulong)(uVar3 + 0x40000)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 + 0x40000)" (( "(") (binary_expression "uVar3 + 0x40000" (identifier "uVar3") (+ "+") (number_literal "0x40000")) () ")")))) (; ";")) (if_statement "if ((char)puVar4[4] != '\x02') {\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }" (if "if") (parenthesized_expression "((char)puVar4[4] != '\x02')" (( "(") (binary_expression "(char)puVar4[4] != '\x02'" (cast_expression "(char)puVar4[4]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n    if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }\n    uVar11 = 0x1505;\n    bVar2 = *pbVar15;\n    while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }\n    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;\n  }" ({ "{") (if_statement "if (uVar3 == 0xffffffff) {\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }\n    else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" (if "if") (parenthesized_expression "(uVar3 == 0xffffffff)" (( "(") (binary_expression "uVar3 == 0xffffffff" (identifier "uVar3") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);\n    }" ({ "{") (expression_statement "pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);" (assignment_expression "pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)**(undefined8 **)(puVar4 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined8 **)(puVar4 + 2)" (* "*") (pointer_expression "*(undefined8 **)(puVar4 + 2)" (* "*") (cast_expression "(undefined8 **)(puVar4 + 2)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")"))))))) (; ";")) (} "}")) (else_clause "else {\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" (else "else") (compound_statement "{\n      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];\n    }" ({ "{") (expression_statement "pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];" (assignment_expression "pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1]" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(*(undefined8 **)(puVar4 + 2))[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(*(undefined8 **)(puVar4 + 2))[1]" (parenthesized_expression "(*(undefined8 **)(puVar4 + 2))" (( "(") (pointer_expression "*(undefined8 **)(puVar4 + 2)" (* "*") (cast_expression "(undefined8 **)(puVar4 + 2)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")))) (expression_statement "uVar11 = 0x1505;" (assignment_expression "uVar11 = 0x1505" (identifier "uVar11") (= "=") (number_literal "0x1505")) (; ";")) (expression_statement "bVar2 = *pbVar15;" (assignment_expression "bVar2 = *pbVar15" (identifier "bVar2") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (; ";")) (while_statement "while (bVar2 != 0) {\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }" (while "while") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;\n      bVar2 = pbVar15[1];\n      pbVar15 = pbVar15 + 1;\n    }" ({ "{") (expression_statement "uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;" (assignment_expression "uVar11 = (ulong)*pbVar15 + uVar11 * 0x21" (identifier "uVar11") (= "=") (binary_expression "(ulong)*pbVar15 + uVar11 * 0x21" (binary_expression "(ulong)*pbVar15" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "pbVar15")) (+ "+") (binary_expression "uVar11 * 0x21" (identifier "uVar11") (* "*") (number_literal "0x21")))) (; ";")) (expression_statement "bVar2 = pbVar15[1];" (assignment_expression "bVar2 = pbVar15[1]" (identifier "bVar2") (= "=") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;" (assignment_expression "uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11" (identifier "uVar11") (= "=") (binary_expression "(ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11" (binary_expression "(ulong)*puVar4 << 0x10 ^ (ulong)uVar3" (binary_expression "(ulong)*puVar4 << 0x10" (binary_expression "(ulong)*puVar4" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "puVar4")) (<< "<<") (number_literal "0x10")) (^ "^") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (^ "^") (identifier "uVar11"))) (; ";")) (} "}"))) (expression_statement "uVar13 = uVar11 % (ulong)param_1[1];" (assignment_expression "uVar13 = uVar11 % (ulong)param_1[1]" (identifier "uVar13") (= "=") (binary_expression "uVar11 % (ulong)param_1[1]" (identifier "uVar11") (% "%") (cast_expression "(ulong)param_1[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);" (assignment_expression "puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11)" (identifier "puVar9") (= "=") (cast_expression "(ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0028cf90(param_1,uVar13,param_2,uVar11)" (identifier "FUN_0028cf90") (argument_list "(param_1,uVar13,param_2,uVar11)" (( "(") (identifier "param_1") (, ",") (identifier "uVar13") (, ",") (identifier "param_2") (, ",") (identifier "uVar11") () ")"))))) (; ";")) (if_statement "if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }" (if "if") (parenthesized_expression "((puVar9 != (ulong *)0x0) && (*puVar9 != 0))" (( "(") (binary_expression "(puVar9 != (ulong *)0x0) && (*puVar9 != 0)" (parenthesized_expression "(puVar9 != (ulong *)0x0)" (( "(") (binary_expression "puVar9 != (ulong *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*puVar9 != 0)" (( "(") (binary_expression "*puVar9 != 0" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    auVar16._8_8_ = 0;\n    auVar16._0_8_ = *puVar9;\n    return auVar16;\n  }" ({ "{") (expression_statement "auVar16._8_8_ = 0;" (assignment_expression "auVar16._8_8_ = 0" (field_expression "auVar16._8_8_" (identifier "auVar16") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "auVar16._0_8_ = *puVar9;" (assignment_expression "auVar16._0_8_ = *puVar9" (field_expression "auVar16._0_8_" (identifier "auVar16") (. ".") (field_identifier "_0_8_")) (= "=") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (; ";")) (return_statement "return auVar16;" (return "return") (identifier "auVar16") (; ";")) (} "}"))) (expression_statement "auVar17._0_8_ = (long *)FUN_0049cb60(0x18);" (assignment_expression "auVar17._0_8_ = (long *)FUN_0049cb60(0x18)" (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_")) (= "=") (cast_expression "(long *)FUN_0049cb60(0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0049cb60(0x18)" (identifier "FUN_0049cb60") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "lVar5 = param_1[3];" (assignment_expression "lVar5 = param_1[3]" (identifier "lVar5") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "lVar6 = param_1[1];" (assignment_expression "lVar6 = param_1[1]" (identifier "lVar6") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*auVar17._0_8_ = 0;" (assignment_expression "*auVar17._0_8_ = 0" (pointer_expression "*auVar17._0_8_" (* "*") (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "auVar17._0_8_[1] = *param_2;" (assignment_expression "auVar17._0_8_[1] = *param_2" (subscript_expression "auVar17._0_8_[1]" (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_")) ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);" (assignment_expression "cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1)" (identifier "cVar8") (= "=") (call_expression "FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1)" (identifier "FUN_004dc8c0") (argument_list "(param_1 + 4,lVar6,lVar5,1)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (, ",") (identifier "lVar6") (, ",") (identifier "lVar5") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') {\n    plVar10 = (long *)*param_1;\n  }\n  else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    plVar10 = (long *)*param_1;\n  }" ({ "{") (expression_statement "plVar10 = (long *)*param_1;" (assignment_expression "plVar10 = (long *)*param_1" (identifier "plVar10") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}")) (else_clause "else {\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" (else "else") (compound_statement "{\n    if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }\n    plVar12 = (long *)param_1[2];\n    param_1[2] = 0;\n    if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }\nLAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }\n    param_1[1] = extraout_RDX;\n    uVar13 = uVar11 % extraout_RDX;\n    *param_1 = (long)plVar10;\n  }" ({ "{") (if_statement "if (extraout_RDX == 1) {\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }\n    else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" (if "if") (parenthesized_expression "(extraout_RDX == 1)" (( "(") (binary_expression "extraout_RDX == 1" (identifier "extraout_RDX") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      plVar10 = param_1 + 6;\n      param_1[6] = 0;\n    }" ({ "{") (expression_statement "plVar10 = param_1 + 6;" (assignment_expression "plVar10 = param_1 + 6" (identifier "plVar10") (= "=") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "param_1[6] = 0;" (assignment_expression "param_1[6] = 0" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" (else "else") (compound_statement "{\n                    \n      plVar10 = (long *)FUN_00292490(extraout_RDX);\n    }" ({ "{") (expression_statement "plVar10 = (long *)FUN_00292490(extraout_RDX);" (assignment_expression "plVar10 = (long *)FUN_00292490(extraout_RDX)" (identifier "plVar10") (= "=") (cast_expression "(long *)FUN_00292490(extraout_RDX)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00292490(extraout_RDX)" (identifier "FUN_00292490") (argument_list "(extraout_RDX)" (( "(") (identifier "extraout_RDX") () ")"))))) (; ";")) (} "}")))) (expression_statement "plVar12 = (long *)param_1[2];" (assignment_expression "plVar12 = (long *)param_1[2]" (identifier "plVar12") (= "=") (cast_expression "(long *)param_1[2]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "param_1[2] = 0;" (assignment_expression "param_1[2] = 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (plVar12 != (long *)0x0) {\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }" (if "if") (parenthesized_expression "(plVar12 != (long *)0x0)" (( "(") (binary_expression "plVar12 != (long *)0x0" (identifier "plVar12") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar13 = 0;\n      do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);\n    }" ({ "{") (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      } while (plVar7 != (long *)0x0);" (do "do") (compound_statement "{\n        while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }\n        *plVar12 = param_1[2];\n        param_1[2] = (long)plVar12;\n        *plVar1 = (long)(param_1 + 2);\n        if (*plVar12 == 0) goto LAB_00296484;\n        plVar10[uVar13] = (long)plVar12;\n        plVar12 = plVar7;\n        uVar13 = uVar14;\n      }" ({ "{") (while_statement "while( true ) {\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          plVar7 = (long *)*plVar12;\n          uVar14 = (ulong)plVar12[2] % extraout_RDX;\n          plVar1 = plVar10 + uVar14;\n          if ((long *)*plVar1 == (long *)0x0) break;\n          *plVar12 = *(long *)*plVar1;\n          *(long **)*plVar1 = plVar12;\n          uVar14 = uVar13;\nLAB_00296484:\n          plVar12 = plVar7;\n          uVar13 = uVar14;\n          if (plVar7 == (long *)0x0) goto LAB_002964d0;\n        }" ({ "{") (expression_statement "plVar7 = (long *)*plVar12;" (assignment_expression "plVar7 = (long *)*plVar12" (identifier "plVar7") (= "=") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (; ";")) (expression_statement "uVar14 = (ulong)plVar12[2] % extraout_RDX;" (assignment_expression "uVar14 = (ulong)plVar12[2] % extraout_RDX" (identifier "uVar14") (= "=") (binary_expression "(ulong)plVar12[2] % extraout_RDX" (cast_expression "(ulong)plVar12[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "plVar12[2]" (identifier "plVar12") ([ "[") (number_literal "2") (] "]"))) (% "%") (identifier "extraout_RDX"))) (; ";")) (expression_statement "plVar1 = plVar10 + uVar14;" (assignment_expression "plVar1 = plVar10 + uVar14" (identifier "plVar1") (= "=") (binary_expression "plVar10 + uVar14" (identifier "plVar10") (+ "+") (identifier "uVar14"))) (; ";")) (if_statement "if ((long *)*plVar1 == (long *)0x0) break;" (if "if") (parenthesized_expression "((long *)*plVar1 == (long *)0x0)" (( "(") (binary_expression "(long *)*plVar1 == (long *)0x0" (cast_expression "(long *)*plVar1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*plVar12 = *(long *)*plVar1;" (assignment_expression "*plVar12 = *(long *)*plVar1" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (= "=") (pointer_expression "*(long *)*plVar1" (* "*") (cast_expression "(long *)*plVar1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar1" (* "*") (identifier "plVar1"))))) (; ";")) (expression_statement "*(long **)*plVar1 = plVar12;" (assignment_expression "*(long **)*plVar1 = plVar12" (pointer_expression "*(long **)*plVar1" (* "*") (cast_expression "(long **)*plVar1" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar1" (* "*") (identifier "plVar1")))) (= "=") (identifier "plVar12")) (; ";")) (expression_statement "uVar14 = uVar13;" (assignment_expression "uVar14 = uVar13" (identifier "uVar14") (= "=") (identifier "uVar13")) (; ";")) (labeled_statement "LAB_00296484:\n          plVar12 = plVar7;" (statement_identifier "LAB_00296484") (: ":") (expression_statement "plVar12 = plVar7;" (assignment_expression "plVar12 = plVar7" (identifier "plVar12") (= "=") (identifier "plVar7")) (; ";"))) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" (identifier "uVar13") (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (plVar7 == (long *)0x0) goto LAB_002964d0;" (if "if") (parenthesized_expression "(plVar7 == (long *)0x0)" (( "(") (binary_expression "plVar7 == (long *)0x0" (identifier "plVar7") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_002964d0;" (goto "goto") (statement_identifier "LAB_002964d0") (; ";"))) (} "}"))) (expression_statement "*plVar12 = param_1[2];" (assignment_expression "*plVar12 = param_1[2]" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[2] = (long)plVar12;" (assignment_expression "param_1[2] = (long)plVar12" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) (; ";")) (expression_statement "*plVar1 = (long)(param_1 + 2);" (assignment_expression "*plVar1 = (long)(param_1 + 2)" (pointer_expression "*plVar1" (* "*") (identifier "plVar1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (*plVar12 == 0) goto LAB_00296484;" (if "if") (parenthesized_expression "(*plVar12 == 0)" (( "(") (binary_expression "*plVar12 == 0" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00296484;" (goto "goto") (statement_identifier "LAB_00296484") (; ";"))) (expression_statement "plVar10[uVar13] = (long)plVar12;" (assignment_expression "plVar10[uVar13] = (long)plVar12" (subscript_expression "plVar10[uVar13]" (identifier "plVar10") ([ "[") (identifier "uVar13") (] "]")) (= "=") (cast_expression "(long)plVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar12"))) (; ";")) (expression_statement "plVar12 = plVar7;" (assignment_expression "plVar12 = plVar7" (identifier "plVar12") (= "=") (identifier "plVar7")) (; ";")) (expression_statement "uVar13 = uVar14;" (assignment_expression "uVar13 = uVar14" (identifier "uVar13") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar7 != (long *)0x0)" (( "(") (binary_expression "plVar7 != (long *)0x0" (identifier "plVar7") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_002964d0:\n    if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }" (statement_identifier "LAB_002964d0") (: ":") (if_statement "if ((long *)*param_1 != param_1 + 6) {\n      FUN_0049e330();\n    }" (if "if") (parenthesized_expression "((long *)*param_1 != param_1 + 6)" (( "(") (binary_expression "(long *)*param_1 != param_1 + 6" (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (!= "!=") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6"))) () ")")) (compound_statement "{\n      FUN_0049e330();\n    }" ({ "{") (expression_statement "FUN_0049e330();" (call_expression "FUN_0049e330()" (identifier "FUN_0049e330") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "param_1[1] = extraout_RDX;" (assignment_expression "param_1[1] = extraout_RDX" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "extraout_RDX")) (; ";")) (expression_statement "uVar13 = uVar11 % extraout_RDX;" (assignment_expression "uVar13 = uVar11 % extraout_RDX" (identifier "uVar13") (= "=") (binary_expression "uVar11 % extraout_RDX" (identifier "uVar11") (% "%") (identifier "extraout_RDX"))) (; ";")) (expression_statement "*param_1 = (long)plVar10;" (assignment_expression "*param_1 = (long)plVar10" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)plVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar10"))) (; ";")) (} "}")))) (expression_statement "plVar12 = plVar10 + uVar13;" (assignment_expression "plVar12 = plVar10 + uVar13" (identifier "plVar12") (= "=") (binary_expression "plVar10 + uVar13" (identifier "plVar10") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "auVar17._0_8_[2] = uVar11;" (assignment_expression "auVar17._0_8_[2] = uVar11" (subscript_expression "auVar17._0_8_[2]" (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_")) ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (if_statement "if ((long *)*plVar12 == (long *)0x0) {\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }\n  else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" (if "if") (parenthesized_expression "((long *)*plVar12 == (long *)0x0)" (( "(") (binary_expression "(long *)*plVar12 == (long *)0x0" (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    lVar5 = param_1[2];\n    param_1[2] = (long)auVar17._0_8_;\n    *auVar17._0_8_ = lVar5;\n    if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }\n    *plVar12 = (long)(param_1 + 2);\n  }" ({ "{") (expression_statement "lVar5 = param_1[2];" (assignment_expression "lVar5 = param_1[2]" (identifier "lVar5") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[2] = (long)auVar17._0_8_;" (assignment_expression "param_1[2] = (long)auVar17._0_8_" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)auVar17._0_8_" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_")))) (; ";")) (expression_statement "*auVar17._0_8_ = lVar5;" (assignment_expression "*auVar17._0_8_ = lVar5" (pointer_expression "*auVar17._0_8_" (* "*") (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_"))) (= "=") (identifier "lVar5")) (; ";")) (if_statement "if (lVar5 != 0) {\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }" (if "if") (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;\n    }" ({ "{") (expression_statement "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;" (assignment_expression "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_" (subscript_expression "plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]]" (identifier "plVar10") ([ "[") (binary_expression "*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]" (pointer_expression "*(ulong *)(lVar5 + 0x10)" (* "*") (cast_expression "(ulong *)(lVar5 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (% "%") (cast_expression "(ulong)param_1[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (] "]")) (= "=") (cast_expression "(long)auVar17._0_8_" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_")))) (; ";")) (} "}"))) (expression_statement "*plVar12 = (long)(param_1 + 2);" (assignment_expression "*plVar12 = (long)(param_1 + 2)" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" (else "else") (compound_statement "{\n    *auVar17._0_8_ = *(long *)*plVar12;\n    *(long **)*plVar12 = auVar17._0_8_;\n  }" ({ "{") (expression_statement "*auVar17._0_8_ = *(long *)*plVar12;" (assignment_expression "*auVar17._0_8_ = *(long *)*plVar12" (pointer_expression "*auVar17._0_8_" (* "*") (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_"))) (= "=") (pointer_expression "*(long *)*plVar12" (* "*") (cast_expression "(long *)*plVar12" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12"))))) (; ";")) (expression_statement "*(long **)*plVar12 = auVar17._0_8_;" (assignment_expression "*(long **)*plVar12 = auVar17._0_8_" (pointer_expression "*(long **)*plVar12" (* "*") (cast_expression "(long **)*plVar12" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar12" (* "*") (identifier "plVar12")))) (= "=") (field_expression "auVar17._0_8_" (identifier "auVar17") (. ".") (field_identifier "_0_8_"))) (; ";")) (} "}")))) (expression_statement "param_1[3] = param_1[3] + 1;" (assignment_expression "param_1[3] = param_1[3] + 1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_1[3] + 1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "auVar17._8_8_ = 1;" (assignment_expression "auVar17._8_8_ = 1" (field_expression "auVar17._8_8_" (identifier "auVar17") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "1")) (; ";")) (return_statement "return auVar17;" (return "return") (identifier "auVar17") (; ";")) (} "}"))

/* WARNING: Type propagation algorithm not settling */
/* DWARF original name: _M_insert<(anonymous namespace)::Mips_got_entry<32, false>* const&,
   std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous
   namespace)::Mips_got_entry<32, false>*, true> > > >
   DWARF original prototype:
   pair<std::__detail::_Node_iterator<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true,_true>,_bool>
   _M_insert<(anonymous_namespace)::Mips_got_entry<32,_false>*_const&,_std::__detail::_AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>_>(_Hashtable<gold::Symbol_location,_gold::Symbol_location,_std::allocator<gold::Symbol_location>,_std::__detail::_Identity,_std::equal_to<gold::Symbol_location>,_gold::Symbol_location_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
   * this, Mips_got_entry<32,_false> * * __v,
   _AllocNode<std::allocator<std::__detail::_Hash_node<(anonymous_namespace)::Mips_got_entry<32,_false>*,_true>_>_>
   * __node_gen, true_type param_5, size_type __n_elt) */

pair<var_26::__detail::_Node_iterator<(anonymous_namespace)::var_1<32,var_2>*,var_3,var_3>,var_4>
 var_5
std::
_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
::
_M_insert<(anonymous_namespace)::var_1<32,var_2>*_const&,_std::__detail::_AllocNode<var_26::allocator<var_26::__detail::_Hash_node<(anonymous_namespace)::var_1<32,var_2>*,var_3>var_6>var_6>var_6>
          (_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
           *var_17,var_8 *var_9)

{
  _Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
  *p_Var1;
  type_1 var_14;
  type_2 var_12;
  type_3 pMVar4;
  long *var_31;
  long var_34;
  char var_23;
  type_4 *var_19;
  _Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
  *var_29;
  type_5 var_16;
  long *var_28;
  type_5 var_32;
  var_25<var_26::allocator<var_26::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,var_3>var_6>var_6>
  *var_24;
  type_5 var_30;
  type_3 *__k;
  type_1 *var_15;
  type_5 __n;
  pair<var_26::__detail::_Node_iterator<(anonymous_namespace)::var_1<32,var_2>*,var_3,var_3>,var_4>
  var_10;
  pair<var_26::__detail::_Node_iterator<(anonymous_namespace)::var_1<32,var_2>*,var_3,var_3>,var_4>
  var_11;
  
  pMVar4 = *(type_3 *)var_9->__data;
  var_12 = pMVar4->symndx_;
  var_16 = (type_5)(var_12 + 0x40000);
  if (pMVar4->tls_type_ != '\x02') {
    if (var_12 == 0xffffffff) {
      var_15 = (type_1 *)(((pMVar4->d).sym)->super_Sized_symbol<32>var_13).super_Symbol.name_;
    }
    else {
      var_15 = (type_1 *)(((pMVar4->d).sym)->super_Sized_symbol<32>var_13).super_Symbol.version_;
    }
    var_16 = 0x1505;
    var_14 = *var_15;
    while (var_14 != 0) {
      var_16 = (type_5)*var_15 + var_16 * 0x21;
      var_14 = var_15[1];
      var_15 = var_15 + 1;
    }
    var_16 = (type_5)pMVar4->addend_ << 0x10 ^ (type_5)var_12 ^ var_16;
  }
  var_32 = var_16 % *(type_5 *)(var_17 + 8);
  var_19 = var_18(var_17,var_32,(type_3 *)var_9,var_16);
  if ((var_19 != (type_4 *)0x0) && (var_19->_M_nxt != (type_6 *)0x0)) {
    var_10._8_8_ = 0;
    var_10.first.super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
    _M_cur = (var_35<(anonymous_namespace)::var_1<32,var_2>*,var_3>)
             (var_35<(anonymous_namespace)::var_1<32,var_2>*,var_3>)
             var_19->_M_nxt;
    return var_10;
  }
  var_11.first.super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
  _M_cur = (type_7 *)var_20(0x18);
  var_30 = *(type_5 *)(var_17 + 0x18);
  __n = *(type_5 *)(var_17 + 8);
  *(long *)&(var_11.first.
             super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
            _M_cur)->super__Hash_node_value_base<(anonymous_namespace)::var_1<32,var_2>*>
       = 0;
  ((var_21<(anonymous_namespace)::var_1<32,var_2>*> *)
  ((long)&(var_11.first.
           super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>._M_cur
          )->super__Hash_node_value_base<(anonymous_namespace)::var_1<32,var_2>*> + 8))->
  _M_storage = *var_9;
  var_23 = __detail::_Prime_rehash_policy::var_22
                    ((type_8 *)(var_17 + 0x20),__n,var_30,1);
  if (var_23 == '\0') {
    var_29 = *(_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
               **)var_17;
  }
  else {
    if (var_24 ==
        (var_25<var_26::allocator<var_26::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,var_3>var_6>var_6>
         *)0x1) {
      var_29 = var_17 + 0x30;
      *(type_9 *)(var_17 + 0x30) = 0;
    }
    else {
                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */
      var_29 = (_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
                *)__detail::
                  var_25<var_26::allocator<var_26::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,var_3>var_6>var_6>
                  ::var_27(var_24,__n);
    }
    var_28 = *(long **)(var_17 + 0x10);
    *(type_9 *)(var_17 + 0x10) = 0;
    if (var_28 != (long *)0x0) {
      var_32 = 0;
      do {
        while( true ) {
          var_31 = (long *)*var_28;
          var_30 = (type_5)var_28[2] % (type_5)var_24;
          p_Var1 = var_29 + var_30 * 8;
          if (*(long **)p_Var1 == (long *)0x0) break;
          *var_28 = **(long **)p_Var1;
          **(type_9 **)p_Var1 = var_28;
          var_30 = var_32;
LAB_00296484:
          var_28 = var_31;
          var_32 = var_30;
          if (var_31 == (long *)0x0) goto LAB_002964d0;
        }
        *var_28 = *(long *)(var_17 + 0x10);
        *(long **)(var_17 + 0x10) = var_28;
        *(_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
          **)p_Var1 = var_17 + 0x10;
        if (*var_28 == 0) goto LAB_00296484;
        *(long **)(var_29 + var_32 * 8) = var_28;
        var_28 = var_31;
        var_32 = var_30;
      } while (var_31 != (long *)0x0);
    }
LAB_002964d0:
    if (*(_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
          **)var_17 != var_17 + 0x30) {
      var_33(*(_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
                        **)var_17);
    }
    *(var_25<var_26::allocator<var_26::__detail::_Hash_node<(anonymous_namespace)::Got_page_entry*,var_3>var_6>var_6>
      **var_13)(var_17 + 8) = var_24;
    var_32 = var_16 % (type_5)var_24;
    *(_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
      **)var_17 = var_29;
  }
  p_Var1 = var_29 + var_32 * 8;
  (var_11.first.super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
  _M_cur)->_M_hash_code = var_16;
  if (*(long **)p_Var1 == (long *)0x0) {
    var_34 = *(long *)(var_17 + 0x10);
    *(type_7 **)(var_17 + 0x10) =
         var_11.first.
         super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>._M_cur;
    *(long *)&(var_11.first.
               super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
              _M_cur)->
              super__Hash_node_value_base<(anonymous_namespace)::var_1<32,var_2>*> = var_34
    ;
    if (var_34 != 0) {
      *(type_7 **)(var_29 + (*(type_5 *)(var_34 + 0x10) % *(type_5 *)(var_17 + 8)) * 8) =
           var_11.first.
           super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>._M_cur
      ;
    }
    *(_Hashtable<(anonymous_namespace)::var_1<32,var_2>*,var_6(anonymous_namespace)::var_1<32,var_2>*,_std::allocator<(anonymous_namespace)::var_1<32,var_2>*>,_std::__detail::_Identity,var_6(anonymous_namespace)::Mips_got_entry_eq<32,var_2>,var_6(anonymous_namespace)::Mips_got_entry_hash<32,var_2>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_8,_std::__detail::var_7<true,var_3,var_3>var_6>
      **)p_Var1 = var_17 + 0x10;
  }
  else {
    *(long *)&(var_11.first.
               super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
              _M_cur)->
              super__Hash_node_value_base<(anonymous_namespace)::var_1<32,var_2>*> =
         **(long **)p_Var1;
    (*(var_35<(anonymous_namespace)::var_1<32,var_2>*,var_3> **)p_Var1)->
    _M_cur = var_11.first.
             super__Node_iterator_base<(anonymous_namespace)::var_1<32,var_2>*,var_3>.
             _M_cur;
  }
  *(long *)(var_17 + 0x18) = *(long *)(var_17 + 0x18) + 1;
  var_11._8_8_ = 1;
  return var_11;
}


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

undefined1  [16] MASKED(long *param_1,long *param_2)

{
  long *plVar1;
  byte bVar2;
  uint uVar3;
  uint *puVar4;
  long lVar5;
  long lVar6;
  long *plVar7;
  char cVar8;
  ulong *puVar9;
  long *plVar10;
  ulong uVar11;
  long *plVar12;
  ulong uVar13;
  ulong extraout_RDX;
  ulong uVar14;
  byte *pbVar15;
  undefined1 auVar16 [16];
  undefined1 auVar17 [16];
  
  puVar4 = (uint *)*param_2;
  uVar3 = puVar4[1];
  uVar11 = (ulong)(uVar3 + 0x40000);
  if ((char)puVar4[4] != '\x02') {
    if (uVar3 == 0xffffffff) {
      pbVar15 = (byte *)**(undefined8 **)(puVar4 + 2);
    }
    else {
      pbVar15 = (byte *)(*(undefined8 **)(puVar4 + 2))[1];
    }
    uVar11 = 0x1505;
    bVar2 = *pbVar15;
    while (bVar2 != 0) {
      uVar11 = (ulong)*pbVar15 + uVar11 * 0x21;
      bVar2 = pbVar15[1];
      pbVar15 = pbVar15 + 1;
    }
    uVar11 = (ulong)*puVar4 << 0x10 ^ (ulong)uVar3 ^ uVar11;
  }
  uVar13 = uVar11 % (ulong)param_1[1];
  puVar9 = (ulong *)FUN_0028cf90(param_1,uVar13,param_2,uVar11);
  if ((puVar9 != (ulong *)0x0) && (*puVar9 != 0)) {
    auVar16._8_8_ = 0;
    auVar16._0_8_ = *puVar9;
    return auVar16;
  }
  auVar17._0_8_ = (long *)FUN_0049cb60(0x18);
  lVar5 = param_1[3];
  lVar6 = param_1[1];
  *auVar17._0_8_ = 0;
  auVar17._0_8_[1] = *param_2;
  cVar8 = FUN_004dc8c0(param_1 + 4,lVar6,lVar5,1);
  if (cVar8 == '\0') {
    plVar10 = (long *)*param_1;
  }
  else {
    if (extraout_RDX == 1) {
      plVar10 = param_1 + 6;
      param_1[6] = 0;
    }
    else {
                    /* try { // try from 0029644e to 00296452 has its CatchHandler @ 00296594 */
      plVar10 = (long *)FUN_00292490(extraout_RDX);
    }
    plVar12 = (long *)param_1[2];
    param_1[2] = 0;
    if (plVar12 != (long *)0x0) {
      uVar13 = 0;
      do {
        while( true ) {
          plVar7 = (long *)*plVar12;
          uVar14 = (ulong)plVar12[2] % extraout_RDX;
          plVar1 = plVar10 + uVar14;
          if ((long *)*plVar1 == (long *)0x0) break;
          *plVar12 = *(long *)*plVar1;
          *(long **)*plVar1 = plVar12;
          uVar14 = uVar13;
LAB_00296484:
          plVar12 = plVar7;
          uVar13 = uVar14;
          if (plVar7 == (long *)0x0) goto LAB_002964d0;
        }
        *plVar12 = param_1[2];
        param_1[2] = (long)plVar12;
        *plVar1 = (long)(param_1 + 2);
        if (*plVar12 == 0) goto LAB_00296484;
        plVar10[uVar13] = (long)plVar12;
        plVar12 = plVar7;
        uVar13 = uVar14;
      } while (plVar7 != (long *)0x0);
    }
LAB_002964d0:
    if ((long *)*param_1 != param_1 + 6) {
      FUN_0049e330();
    }
    param_1[1] = extraout_RDX;
    uVar13 = uVar11 % extraout_RDX;
    *param_1 = (long)plVar10;
  }
  plVar12 = plVar10 + uVar13;
  auVar17._0_8_[2] = uVar11;
  if ((long *)*plVar12 == (long *)0x0) {
    lVar5 = param_1[2];
    param_1[2] = (long)auVar17._0_8_;
    *auVar17._0_8_ = lVar5;
    if (lVar5 != 0) {
      plVar10[*(ulong *)(lVar5 + 0x10) % (ulong)param_1[1]] = (long)auVar17._0_8_;
    }
    *plVar12 = (long)(param_1 + 2);
  }
  else {
    *auVar17._0_8_ = *(long *)*plVar12;
    *(long **)*plVar12 = auVar17._0_8_;
  }
  param_1[3] = param_1[3] + 1;
  auVar17._8_8_ = 1;
  return auVar17;
}

