
/* DWARF original prototype: uint * add_with_length(Stringpool_template<unsigned_int> * this, uint *
   s, size_t length, bool copy, Key * pkey) */

uint * __thiscall
gold::Stringpool_template<unsigned_int>::add_with_length
          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)

{
  __node_base *p_Var1;
  _Hash_node_base *p_Var2;
  uint *puVar3;
  size_t length_00;
  Stringpool_template<unsigned_int> *this_00;
  uint *puVar4;
  uint uVar5;
  char copy_00;
  undefined3 in_register_0000001c;
  pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int> *pkey_00;
  Key KVar6;
  pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int> element;
  Hashkey hk;
  Insert_type ins;
  
  KVar6 = (this->key_to_offset_).size_ + 1;
  element.second = KVar6;
  if (CONCAT31(in_register_0000001c,copy) == 0) {
    element.first.hash_code = string_hash(s,length);
    pkey_00 = &element;
    element.first.string = s;
    element.first.length = length;
    std::
    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>
              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                *)&hk,this,0);
    if (hk.length._0_1_ == '\0') {
      puVar4 = (uint *)&DAT_0000010d;
      if (KVar6 == hk.string[4]) goto LAB_0022acb4;
    }
    else {
      new_key_offset(this,length);
    }
    if (pkey != (Key *)0x0) {
      *pkey = hk.string[4];
    }
    puVar4 = (uint *)hk.string[1];
  }
  else {
    hk.string = s;
    hk.length = length;
    hk.hash_code = string_hash(s,length);
    uVar5 = (this->string_set_)._M_h._M_bucket_count;
    if (uVar5 == 0) {
      trap(7);
    }
    p_Var1 = std::
             _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
             ::_M_find_before_node
                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);
    if ((p_Var1 != (__node_base *)0x0) &&
       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)) {
      if (pkey != (Key *)0x0) {
        *pkey = (Key)p_Var2[4]._M_nxt;
      }
      return (uint *)p_Var2[1]._M_nxt;
    }
    new_key_offset(this,length);
    puVar4 = add_string(this,s,length);
    pkey_00 = &element;
    element.first.length = hk.length;
    element.first.hash_code = hk.hash_code;
    element.first.string = puVar4;
    hk.string = puVar4;
    std::
    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>
              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                *)&ins,this,0);
    if (ins.second == false) {
      puVar4 = (uint *)&DAT_0000012c;
LAB_0022acb4:
      copy_00 = (char)PTR_s__0043226c + '`';
      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);
      (*(code *)PTR_do_gold_unreachable_004323c4)();
      length_00 = *puVar4;
      if (length_00 != 0) {
        length_00 = 0;
        puVar3 = puVar4;
        do {
          puVar3 = puVar3 + 1;
          length_00 = length_00 + 1;
        } while (*puVar3 != 0);
      }
      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);
      return puVar4;
    }
    if (pkey != (Key *)0x0) {
      *pkey = KVar6;
    }
  }
  return puVar4;
}



/* gold::Stringpool_template<unsigned int>::add_with_length(unsigned int const*, unsigned int, bool,
   unsigned int*) */

uint * __thiscall
gold::Stringpool_template<unsigned_int>::add_with_length
          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,
          uint *param_4)

{
  int *piVar1;
  int iVar2;
  uint *puVar3;
  undefined4 uVar4;
  undefined3 in_register_0000001c;
  uint uVar5;
  uint *local_48;
  uint local_44;
  uint local_40;
  uint local_3c;
  uint *local_38;
  uint local_34;
  uint local_30;
  undefined1 auStack_2c [4];
  char local_28;
  uint *local_20;
  
  uVar5 = *(int *)(this + 0x28) + 1;
  local_3c = uVar5;
  if (CONCAT31(in_register_0000001c,param_3) == 0) {
    local_40 = string_hash(param_1,param_2);
    local_48 = param_1;
    local_44 = param_2;
    std::
    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>
              (&local_38,this,0,&local_48);
    if (local_34._0_1_ == '\0') {
      uVar4 = 0x10d;
      if (uVar5 == local_38[4]) goto LAB_0022acb4;
    }
    else {
      new_key_offset(this,param_2);
    }
    if (param_4 != (uint *)0x0) {
      *param_4 = local_38[4];
    }
    local_20 = (uint *)local_38[1];
  }
  else {
    local_38 = param_1;
    local_34 = param_2;
    local_30 = string_hash(param_1,param_2);
    if (*(uint *)(this + 4) == 0) {
      trap(7);
    }
    piVar1 = (int *)std::
                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
                    ::_M_find_before_node
                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)
    ;
    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {
      if (param_4 != (uint *)0x0) {
        *param_4 = *(uint *)(iVar2 + 0x10);
      }
      return *(uint **)(iVar2 + 4);
    }
    new_key_offset(this,param_2);
    local_48 = (uint *)add_string(this,param_1,param_2);
    local_44 = local_34;
    local_40 = local_30;
    local_38 = local_48;
    local_20 = local_48;
    std::
    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>
              (auStack_2c,this,0,&local_48);
    if (local_28 == '\0') {
      uVar4 = 300;
LAB_0022acb4:
      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)
                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);
      return puVar3;
    }
    if (param_4 != (uint *)0x0) {
      *param_4 = uVar5;
    }
  }
  return local_20;
}


lui gp,0x21
addiu gp,gp,-0x8e0
addu gp,gp,t9
addiu sp,sp,-0x60
sw s1,0x4c(sp)
sw s3,0x54(sp)
or s3,a1,zero
sw gp,0x10(sp)
or a1,a2,zero
sw s4,0x58(sp)
sw s2,0x50(sp)
or s2,a2,zero
sw s0,0x48(sp)
or s0,a0,zero
sw ra,0x5c(sp)
lw s1,0x28(a0)
or a0,s3,zero
lw s4,0x70(sp)
bne a3,zero,0x0022ab8c
_addiu s1,s1,0x1
lw t9,-0x504c(gp)
bal 0x00226f0c
_nop
or a2,zero,zero
lw gp,0x10(sp)
addiu a3,sp,0x18
sll a2,a2,0x18
sw s3,0x18(sp)
addiu a0,sp,0x28
sw v0,0x20(sp)
sw s2,0x1c(sp)
or a1,s0,zero
lw t9,-0x4fdc(gp)
bal 0x0022a864
_sw s1,0x24(sp)
lbu v0,0x2c(sp)
lw gp,0x10(sp)
bne v0,zero,0x0022ac98
_lw s3,0x28(sp)
lw v0,0x10(s3)
beq s1,v0,0x0022acb4
_li a1,0x10d
beq s4,zero,0x0022ab68
_nop
lw v0,0x10(s3)
sw v0,0x0(s4)
lw v0,0x4(s3)
lw ra,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x60
lw t9,-0x504c(gp)
sw a2,0x2c(sp)
bal 0x00226f0c
_sw s3,0x28(sp)
addiu a2,sp,0x28
lw a1,0x4(s0)
or a3,v0,zero
lw gp,0x10(sp)
or a0,s0,zero
sw v0,0x30(sp)
teq a1,zero
divu v0,a1
lw t9,-0x4fe0(gp)
bal 0x0022a744
_mfhi a1
beq v0,zero,0x0022ac10
_lw gp,0x10(sp)
lw v0,0x0(v0)
beq v0,zero,0x0022ac14
_lw t9,-0x4fd8(gp)
beq s4,zero,0x0022abf0
_lw ra,0x5c(sp)
lw v1,0x10(v0)
sw v1,0x0(s4)
lw ra,0x5c(sp)
lw v0,0x4(v0)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x60
lw t9,-0x4fd8(gp)
or a1,s2,zero
bal 0x00229cc0
_or a0,s0,zero
or a2,s2,zero
lw gp,0x10(sp)
or a1,s3,zero
lw t9,-0x4fd4(gp)
bal 0x00226f44
_or a0,s0,zero
or a2,zero,zero
lw gp,0x10(sp)
addiu a3,sp,0x18
lw v1,0x2c(sp)
sll a2,a2,0x18
addiu a0,sp,0x34
sw v0,0x28(sp)
sw v0,0x18(sp)
or a1,s0,zero
sw v1,0x1c(sp)
sw v0,0x40(sp)
sw s1,0x24(sp)
lw v1,0x30(sp)
lw t9,-0x4fdc(gp)
bal 0x0022a864
_sw v1,0x20(sp)
lbu v1,0x38(sp)
lw gp,0x10(sp)
beq v1,zero,0x0022acb0
_lw v0,0x40(sp)
beq s4,zero,0x0022ab70
_lw ra,0x5c(sp)
b 0x0022ab6c
_sw s1,0x0(s4)
lw t9,-0x4fd8(gp)
or a1,s2,zero
bal 0x00229cc0
_or a0,s0,zero
b 0x0022ab58
_nop
li a1,0x12c
lw a2,-0x7f64(gp)
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,-0x37a0
jalr t9
_addiu a0,a0,-0x3870
(translation_unit "/* gold::Stringpool_template<unsigned int>::add_with_length(unsigned int const*, unsigned int, bool,\n   unsigned int*) */\n\nuint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  undefined3 in_register_0000001c;\n  uint uVar5;\n  uint *local_48;\n  uint local_44;\n  uint local_40;\n  uint local_3c;\n  uint *local_38;\n  uint local_34;\n  uint local_30;\n  undefined1 auStack_2c [4];\n  char local_28;\n  uint *local_20;\n  \n  uVar5 = *(int *)(this + 0x28) + 1;\n  local_3c = uVar5;\n  if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }\n  return local_20;\n}\n\n" comment (ERROR "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int" (binary_expression "uint * __thiscall" identifier * identifier) (ERROR "gold::Stringpool_template" identifier : : identifier) < identifier) > (ERROR "::" : :) (call_expression "add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" identifier (argument_list "(Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" ( (binary_expression "Stringpool_template<unsigned_int> *this" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "uint *param_1" identifier * identifier) , (ERROR "uint" identifier) identifier , (ERROR "bool" identifier) identifier , (binary_expression "uint *param_4" identifier * identifier) ))))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  undefined3 in_register_0000001c;\n  uint uVar5;\n  uint *local_48;\n  uint local_44;\n  uint local_40;\n  uint local_3c;\n  uint *local_38;\n  uint local_34;\n  uint local_30;\n  undefined1 auStack_2c [4];\n  char local_28;\n  uint *local_20;\n  \n  uVar5 = *(int *)(this + 0x28) + 1;\n  local_3c = uVar5;\n  if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }\n  return local_20;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined1 auStack_2c [4];" type_identifier (array_declarator "auStack_2c [4]" identifier [ number_literal ]) ;) (declaration "char local_28;" primitive_type identifier ;) (declaration "uint *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "uVar5 = *(int *)(this + 0x28) + 1;" (assignment_expression "uVar5 = *(int *)(this + 0x28) + 1" identifier = (binary_expression "*(int *)(this + 0x28) + 1" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" identifier = identifier) ;) (if_statement "if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" if (parenthesized_expression "(CONCAT31(in_register_0000001c,param_3) == 0)" ( (binary_expression "CONCAT31(in_register_0000001c,param_3) == 0" (call_expression "CONCAT31(in_register_0000001c,param_3)" identifier (argument_list "(in_register_0000001c,param_3)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }" { (expression_statement "local_40 = string_hash(param_1,param_2);" (assignment_expression "local_40 = string_hash(param_1,param_2)" identifier = (call_expression "string_hash(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "local_48 = param_1;" (assignment_expression "local_48 = param_1" identifier = identifier) ;) (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" identifier = identifier) ;) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,std" identifier , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>,std" identifier , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>>,std" identifier , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" : : (comma_expression "_Select1st,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" : : (comma_expression "_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n    ::_M_emplace<std" false , (binary_expression "true>>\n    ::_M_emplace<std" (binary_expression "true>>\n    ::_M_emplace" true >> (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (comma_expression "Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48)" identifier , (binary_expression "unsigned_int>&>\n              (&local_38,this,0,&local_48)" identifier > (pointer_expression "&>\n              (&local_38,this,0,&local_48)" & (ERROR ">" >) (parenthesized_expression "(&local_38,this,0,&local_48)" ( (comma_expression "&local_38,this,0,&local_48" (pointer_expression "&local_38" & identifier) , (comma_expression "this,0,&local_48" identifier , (comma_expression "0,&local_48" number_literal , (pointer_expression "&local_48" & identifier)))) ))))) ;))))))) (if_statement "if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }" if (parenthesized_expression "(local_34._0_1_ == '\0')" ( (binary_expression "local_34._0_1_ == '\0'" (field_expression "local_34._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }" { (expression_statement "uVar4 = 0x10d;" (assignment_expression "uVar4 = 0x10d" identifier = number_literal) ;) (if_statement "if (uVar5 == local_38[4]) goto LAB_0022acb4;" if (parenthesized_expression "(uVar5 == local_38[4])" ( (binary_expression "uVar5 == local_38[4]" identifier == (subscript_expression "local_38[4]" identifier [ number_literal ])) )) (goto_statement "goto LAB_0022acb4;" goto statement_identifier ;)) }) (else_clause "else {\n      new_key_offset(this,param_2);\n    }" else (compound_statement "{\n      new_key_offset(this,param_2);\n    }" { (expression_statement "new_key_offset(this,param_2);" (call_expression "new_key_offset(this,param_2)" identifier (argument_list "(this,param_2)" ( identifier , identifier ))) ;) }))) (if_statement "if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = local_38[4];\n    }" { (expression_statement "*param_4 = local_38[4];" (assignment_expression "*param_4 = local_38[4]" (pointer_expression "*param_4" * identifier) = (subscript_expression "local_38[4]" identifier [ number_literal ])) ;) })) (expression_statement "local_20 = (uint *)local_38[1];" (assignment_expression "local_20 = (uint *)local_38[1]" identifier = (cast_expression "(uint *)local_38[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" else (compound_statement "{\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" { (expression_statement "local_38 = param_1;" (assignment_expression "local_38 = param_1" identifier = identifier) ;) (expression_statement "local_34 = param_2;" (assignment_expression "local_34 = param_2" identifier = identifier) ;) (expression_statement "local_30 = string_hash(param_1,param_2);" (assignment_expression "local_30 = string_hash(param_1,param_2)" identifier = (call_expression "string_hash(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(*(uint *)(this + 4) == 0)" ( (binary_expression "*(uint *)(this + 4) == 0" (pointer_expression "*(uint *)(this + 4)" * (cast_expression "(uint *)(this + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (ERROR "piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::" (assignment_expression "piVar1 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) : :) (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" statement_identifier (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" : : (comma_expression "_Select1st,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" 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,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" 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,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (comma_expression "_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" false , (binary_expression "true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" true >> (ERROR "::" : :) (call_expression "_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" identifier (argument_list "((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" ( (parenthesized_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" ( (ERROR "_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,gold" identifier , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_eq,gold" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_eq" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_hash,std" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_hash" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" false , (comma_expression "true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "true>>\n                                *)this" true >> (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (comma_expression "local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "local_30 % *(uint *)(this + 4)" identifier % (pointer_expression "*(uint *)(this + 4)" * (cast_expression "(uint *)(this + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) , (comma_expression "(Hashkey *)&local_38,local_30" (cast_expression "(Hashkey *)&local_38" ( (type_descriptor "Hashkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_38" & identifier)) , identifier))))) )) )))))) ;)))))) (if_statement "if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0))" ( (binary_expression "(piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar2 = *piVar1, iVar2 != 0)" ( (comma_expression "iVar2 = *piVar1, iVar2 != 0" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }" { (if_statement "if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }" { (expression_statement "*param_4 = *(uint *)(iVar2 + 0x10);" (assignment_expression "*param_4 = *(uint *)(iVar2 + 0x10)" (pointer_expression "*param_4" * identifier) = (pointer_expression "*(uint *)(iVar2 + 0x10)" * (cast_expression "(uint *)(iVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) })) (return_statement "return *(uint **)(iVar2 + 4);" return (pointer_expression "*(uint **)(iVar2 + 4)" * (cast_expression "(uint **)(iVar2 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) ;) })) (expression_statement "new_key_offset(this,param_2);" (call_expression "new_key_offset(this,param_2)" identifier (argument_list "(this,param_2)" ( identifier , identifier ))) ;) (expression_statement "local_48 = (uint *)add_string(this,param_1,param_2);" (assignment_expression "local_48 = (uint *)add_string(this,param_1,param_2)" identifier = (cast_expression "(uint *)add_string(this,param_1,param_2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add_string(this,param_1,param_2)" identifier (argument_list "(this,param_1,param_2)" ( identifier , identifier , identifier ))))) ;) (expression_statement "local_44 = local_34;" (assignment_expression "local_44 = local_34" identifier = identifier) ;) (expression_statement "local_40 = local_30;" (assignment_expression "local_40 = local_30" identifier = identifier) ;) (expression_statement "local_38 = local_48;" (assignment_expression "local_38 = local_48" identifier = identifier) ;) (expression_statement "local_20 = local_48;" (assignment_expression "local_20 = local_48" identifier = identifier) ;) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,std" identifier , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>,std" identifier , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>>,std" identifier , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" : : (comma_expression "_Select1st,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" : : (comma_expression "_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n    ::_M_emplace<std" false , (binary_expression "true>>\n    ::_M_emplace<std" (binary_expression "true>>\n    ::_M_emplace" true >> (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (comma_expression "Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48)" identifier , (binary_expression "unsigned_int>&>\n              (auStack_2c,this,0,&local_48)" identifier > (pointer_expression "&>\n              (auStack_2c,this,0,&local_48)" & (ERROR ">" >) (parenthesized_expression "(auStack_2c,this,0,&local_48)" ( (comma_expression "auStack_2c,this,0,&local_48" identifier , (comma_expression "this,0,&local_48" identifier , (comma_expression "0,&local_48" number_literal , (pointer_expression "&local_48" & identifier)))) ))))) ;))))))) (if_statement "if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }" if (parenthesized_expression "(local_28 == '\0')" ( (binary_expression "local_28 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }" { (expression_statement "uVar4 = 300;" (assignment_expression "uVar4 = 300" identifier = number_literal) ;) (labeled_statement "LAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);" statement_identifier : (expression_statement "puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);" (assignment_expression "puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" identifier = (cast_expression "(uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" ( (binary_expression "PTR_DAT_0043226c + -0x3870" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0043226c + -0x37a0" identifier + number_literal) ))))) ;)) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = uVar5;\n    }" { (expression_statement "*param_4 = uVar5;" (assignment_expression "*param_4 = uVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) })) }))) (return_statement "return local_20;" return identifier ;) }))
(translation_unit "/* DWARF original prototype: uint * add_with_length(Stringpool_template<unsigned_int> * this, uint *\n   s, size_t length, bool copy, Key * pkey) */\n\nuint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)\n\n{\n  __node_base *p_Var1;\n  _Hash_node_base *p_Var2;\n  uint *puVar3;\n  size_t length_00;\n  Stringpool_template<unsigned_int> *this_00;\n  uint *puVar4;\n  uint uVar5;\n  char copy_00;\n  undefined3 in_register_0000001c;\n  pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int> *pkey_00;\n  Key KVar6;\n  pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int> element;\n  Hashkey hk;\n  Insert_type ins;\n  \n  KVar6 = (this->key_to_offset_).size_ + 1;\n  element.second = KVar6;\n  if (CONCAT31(in_register_0000001c,copy) == 0) {\n    element.first.hash_code = string_hash(s,length);\n    pkey_00 = &element;\n    element.first.string = s;\n    element.first.length = length;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);\n    if (hk.length._0_1_ == '\0') {\n      puVar4 = (uint *)&DAT_0000010d;\n      if (KVar6 == hk.string[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,length);\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = hk.string[4];\n    }\n    puVar4 = (uint *)hk.string[1];\n  }\n  else {\n    hk.string = s;\n    hk.length = length;\n    hk.hash_code = string_hash(s,length);\n    uVar5 = (this->string_set_)._M_h._M_bucket_count;\n    if (uVar5 == 0) {\n      trap(7);\n    }\n    p_Var1 = std::\n             _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);\n    if ((p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)) {\n      if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }\n      return (uint *)p_Var2[1]._M_nxt;\n    }\n    new_key_offset(this,length);\n    puVar4 = add_string(this,s,length);\n    pkey_00 = &element;\n    element.first.length = hk.length;\n    element.first.hash_code = hk.hash_code;\n    element.first.string = puVar4;\n    hk.string = puVar4;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);\n    if (ins.second == false) {\n      puVar4 = (uint *)&DAT_0000012c;\nLAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';\n      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);\n      (*(code *)PTR_do_gold_unreachable_004323c4)();\n      length_00 = *puVar4;\n      if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }\n      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);\n      return puVar4;\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = KVar6;\n    }\n  }\n  return puVar4;\n}\n\n" comment (expression_statement "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)\n\n{\n  __node_base *p_Var1;" (update_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)\n\n{\n  __node_base *p_Var1" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)\n\n{\n  __node_base *p_Var1" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int" (binary_expression "uint * __thiscall" identifier * identifier) (ERROR "gold::Stringpool_template" identifier : : identifier) < identifier) > (ERROR "::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)\n\n{" : : (call_expression "add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)" identifier (argument_list "(Stringpool_template<unsigned_int> *this,uint *s,size_t length,bool copy,Key *pkey)" ( (binary_expression "Stringpool_template<unsigned_int> *this" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "uint *s" identifier * identifier) , identifier (ERROR "length" identifier) , identifier (ERROR "copy" identifier) , (binary_expression "Key *pkey" identifier * identifier) ))) {) (binary_expression "__node_base *p_Var1" identifier * identifier)) --) ;) (declaration "_Hash_node_base *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t length_00;" primitive_type identifier ;) (expression_statement "Stringpool_template<unsigned_int> *this_00;" (update_expression "Stringpool_template<unsigned_int> *this_00" (binary_expression "Stringpool_template<unsigned_int> *this_00" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (pointer_expression "*this_00" * identifier)) --) ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char copy_00;" primitive_type identifier ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (ERROR "pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int> *pkey_00" (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int> *pkey_00" identifier > (pointer_expression "*pkey_00" * identifier))) (expression_statement ";" ;) (declaration "Key KVar6;" type_identifier identifier ;) (ERROR "pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int> element" (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int> element" identifier > identifier)) (expression_statement ";" ;) (declaration "Hashkey hk;" type_identifier identifier ;) (declaration "Insert_type ins;" type_identifier identifier ;) (expression_statement "KVar6 = (this->key_to_offset_).size_ + 1;" (assignment_expression "KVar6 = (this->key_to_offset_).size_ + 1" identifier = (binary_expression "(this->key_to_offset_).size_ + 1" (field_expression "(this->key_to_offset_).size_" (parenthesized_expression "(this->key_to_offset_)" ( (field_expression "this->key_to_offset_" identifier -> field_identifier) )) . field_identifier) + number_literal)) ;) (expression_statement "element.second = KVar6;" (assignment_expression "element.second = KVar6" (field_expression "element.second" identifier . field_identifier) = identifier) ;) (if_statement "if (CONCAT31(in_register_0000001c,copy) == 0) {\n    element.first.hash_code = string_hash(s,length);\n    pkey_00 = &element;\n    element.first.string = s;\n    element.first.length = length;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);\n    if (hk.length._0_1_ == '\0') {\n      puVar4 = (uint *)&DAT_0000010d;\n      if (KVar6 == hk.string[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,length);\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = hk.string[4];\n    }\n    puVar4 = (uint *)hk.string[1];\n  }\n  else {\n    hk.string = s;\n    hk.length = length;\n    hk.hash_code = string_hash(s,length);\n    uVar5 = (this->string_set_)._M_h._M_bucket_count;\n    if (uVar5 == 0) {\n      trap(7);\n    }\n    p_Var1 = std::\n             _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);\n    if ((p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)) {\n      if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }\n      return (uint *)p_Var2[1]._M_nxt;\n    }\n    new_key_offset(this,length);\n    puVar4 = add_string(this,s,length);\n    pkey_00 = &element;\n    element.first.length = hk.length;\n    element.first.hash_code = hk.hash_code;\n    element.first.string = puVar4;\n    hk.string = puVar4;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);\n    if (ins.second == false) {\n      puVar4 = (uint *)&DAT_0000012c;\nLAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';\n      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);\n      (*(code *)PTR_do_gold_unreachable_004323c4)();\n      length_00 = *puVar4;\n      if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }\n      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);\n      return puVar4;\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = KVar6;\n    }\n  }" if (parenthesized_expression "(CONCAT31(in_register_0000001c,copy) == 0)" ( (binary_expression "CONCAT31(in_register_0000001c,copy) == 0" (call_expression "CONCAT31(in_register_0000001c,copy)" identifier (argument_list "(in_register_0000001c,copy)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    element.first.hash_code = string_hash(s,length);\n    pkey_00 = &element;\n    element.first.string = s;\n    element.first.length = length;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);\n    if (hk.length._0_1_ == '\0') {\n      puVar4 = (uint *)&DAT_0000010d;\n      if (KVar6 == hk.string[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,length);\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = hk.string[4];\n    }\n    puVar4 = (uint *)hk.string[1];\n  }" { (expression_statement "element.first.hash_code = string_hash(s,length);" (assignment_expression "element.first.hash_code = string_hash(s,length)" (field_expression "element.first.hash_code" (field_expression "element.first" identifier . field_identifier) . field_identifier) = (call_expression "string_hash(s,length)" identifier (argument_list "(s,length)" ( identifier , identifier )))) ;) (expression_statement "pkey_00 = &element;" (assignment_expression "pkey_00 = &element" identifier = (pointer_expression "&element" & identifier)) ;) (expression_statement "element.first.string = s;" (assignment_expression "element.first.string = s" (field_expression "element.first.string" (field_expression "element.first" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "element.first.length = length;" (assignment_expression "element.first.length = length" (field_expression "element.first.length" (field_expression "element.first" identifier . field_identifier) . field_identifier) = identifier) ;) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" statement_identifier (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,_std" identifier , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,_unsigned_int>,_std" identifier , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,_unsigned_int>_>,_std" identifier , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" statement_identifier (ERROR "::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std:" : : (comma_expression "_Select1st,_gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,_gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" 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,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" 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,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" statement_identifier (ERROR "::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" : : (comma_expression "_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n    ::_M_emplace<std" identifier , (binary_expression "_true>_>\n    ::_M_emplace<std" (binary_expression "_true>_>\n    ::_M_emplace" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0);" (comma_expression "Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0)" identifier , (binary_expression "_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0)" identifier > (pointer_expression "&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0)" & (ERROR ">" >) (parenthesized_expression "((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0)" ( (comma_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk,this,0" (binary_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&hk" (parenthesized_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)" ( (ERROR "_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_gold" identifier , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_eq,_gold" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_eq" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_hash,_std" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_hash" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                *" identifier , (binary_expression "_true>_>\n                *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & identifier) , (comma_expression "this,0" identifier , number_literal)) ))))) ;))))))) (if_statement "if (hk.length._0_1_ == '\0') {\n      puVar4 = (uint *)&DAT_0000010d;\n      if (KVar6 == hk.string[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,length);\n    }" if (parenthesized_expression "(hk.length._0_1_ == '\0')" ( (binary_expression "hk.length._0_1_ == '\0'" (field_expression "hk.length._0_1_" (field_expression "hk.length" identifier . field_identifier) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puVar4 = (uint *)&DAT_0000010d;\n      if (KVar6 == hk.string[4]) goto LAB_0022acb4;\n    }" { (expression_statement "puVar4 = (uint *)&DAT_0000010d;" (assignment_expression "puVar4 = (uint *)&DAT_0000010d" identifier = (cast_expression "(uint *)&DAT_0000010d" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000010d" & identifier))) ;) (if_statement "if (KVar6 == hk.string[4]) goto LAB_0022acb4;" if (parenthesized_expression "(KVar6 == hk.string[4])" ( (binary_expression "KVar6 == hk.string[4]" identifier == (subscript_expression "hk.string[4]" (field_expression "hk.string" identifier . field_identifier) [ number_literal ])) )) (goto_statement "goto LAB_0022acb4;" goto statement_identifier ;)) }) (else_clause "else {\n      new_key_offset(this,length);\n    }" else (compound_statement "{\n      new_key_offset(this,length);\n    }" { (expression_statement "new_key_offset(this,length);" (call_expression "new_key_offset(this,length)" identifier (argument_list "(this,length)" ( identifier , identifier ))) ;) }))) (if_statement "if (pkey != (Key *)0x0) {\n      *pkey = hk.string[4];\n    }" if (parenthesized_expression "(pkey != (Key *)0x0)" ( (binary_expression "pkey != (Key *)0x0" identifier != (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pkey = hk.string[4];\n    }" { (expression_statement "*pkey = hk.string[4];" (assignment_expression "*pkey = hk.string[4]" (pointer_expression "*pkey" * identifier) = (subscript_expression "hk.string[4]" (field_expression "hk.string" identifier . field_identifier) [ number_literal ])) ;) })) (expression_statement "puVar4 = (uint *)hk.string[1];" (assignment_expression "puVar4 = (uint *)hk.string[1]" identifier = (cast_expression "(uint *)hk.string[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "hk.string[1]" (field_expression "hk.string" identifier . field_identifier) [ number_literal ]))) ;) }) (else_clause "else {\n    hk.string = s;\n    hk.length = length;\n    hk.hash_code = string_hash(s,length);\n    uVar5 = (this->string_set_)._M_h._M_bucket_count;\n    if (uVar5 == 0) {\n      trap(7);\n    }\n    p_Var1 = std::\n             _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);\n    if ((p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)) {\n      if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }\n      return (uint *)p_Var2[1]._M_nxt;\n    }\n    new_key_offset(this,length);\n    puVar4 = add_string(this,s,length);\n    pkey_00 = &element;\n    element.first.length = hk.length;\n    element.first.hash_code = hk.hash_code;\n    element.first.string = puVar4;\n    hk.string = puVar4;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);\n    if (ins.second == false) {\n      puVar4 = (uint *)&DAT_0000012c;\nLAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';\n      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);\n      (*(code *)PTR_do_gold_unreachable_004323c4)();\n      length_00 = *puVar4;\n      if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }\n      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);\n      return puVar4;\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = KVar6;\n    }\n  }" else (compound_statement "{\n    hk.string = s;\n    hk.length = length;\n    hk.hash_code = string_hash(s,length);\n    uVar5 = (this->string_set_)._M_h._M_bucket_count;\n    if (uVar5 == 0) {\n      trap(7);\n    }\n    p_Var1 = std::\n             _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);\n    if ((p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)) {\n      if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }\n      return (uint *)p_Var2[1]._M_nxt;\n    }\n    new_key_offset(this,length);\n    puVar4 = add_string(this,s,length);\n    pkey_00 = &element;\n    element.first.length = hk.length;\n    element.first.hash_code = hk.hash_code;\n    element.first.string = puVar4;\n    hk.string = puVar4;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);\n    if (ins.second == false) {\n      puVar4 = (uint *)&DAT_0000012c;\nLAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';\n      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);\n      (*(code *)PTR_do_gold_unreachable_004323c4)();\n      length_00 = *puVar4;\n      if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }\n      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);\n      return puVar4;\n    }\n    if (pkey != (Key *)0x0) {\n      *pkey = KVar6;\n    }\n  }" { (expression_statement "hk.string = s;" (assignment_expression "hk.string = s" (field_expression "hk.string" identifier . field_identifier) = identifier) ;) (expression_statement "hk.length = length;" (assignment_expression "hk.length = length" (field_expression "hk.length" identifier . field_identifier) = identifier) ;) (expression_statement "hk.hash_code = string_hash(s,length);" (assignment_expression "hk.hash_code = string_hash(s,length)" (field_expression "hk.hash_code" identifier . field_identifier) = (call_expression "string_hash(s,length)" identifier (argument_list "(s,length)" ( identifier , identifier )))) ;) (expression_statement "uVar5 = (this->string_set_)._M_h._M_bucket_count;" (assignment_expression "uVar5 = (this->string_set_)._M_h._M_bucket_count" identifier = (field_expression "(this->string_set_)._M_h._M_bucket_count" (field_expression "(this->string_set_)._M_h" (parenthesized_expression "(this->string_set_)" ( (field_expression "this->string_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar5 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (ERROR "p_Var1 = std::\n             _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::" (assignment_expression "p_Var1 = std" identifier = identifier) : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : :) (labeled_statement "__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);" statement_identifier (ERROR "::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std:" : : (comma_expression "_Select1st,_gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,_gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);" 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,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);" 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,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code);" (comma_expression "_Hashtable_traits<true,_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code)" identifier , (binary_expression "_true>_>\n             ::_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_find_before_node\n                       ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code)" identifier (argument_list "((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code)" ( (parenthesized_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code)" ( (ERROR "_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_gold" identifier , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_eq,_gold" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_eq" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_hash,_std" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_hash" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code" identifier , (comma_expression "_true>_>\n                         *)this,hk.hash_code % uVar5,&hk,hk.hash_code" (binary_expression "_true>_>\n                         *)this" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (comma_expression "hk.hash_code % uVar5,&hk,hk.hash_code" (binary_expression "hk.hash_code % uVar5" (field_expression "hk.hash_code" identifier . field_identifier) % identifier) , (comma_expression "&hk,hk.hash_code" (pointer_expression "&hk" & identifier) , (field_expression "hk.hash_code" identifier . field_identifier)))))) )) )))))) ;)))))) (if_statement "if ((p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)) {\n      if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }\n      return (uint *)p_Var2[1]._M_nxt;\n    }" if (parenthesized_expression "((p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var1 != (__node_base *)0x0) &&\n       (p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var1 != (__node_base *)0x0)" ( (binary_expression "p_Var1 != (__node_base *)0x0" identifier != (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0)" ( (comma_expression "p_Var2 = p_Var1->_M_nxt, p_Var2 != (_Hash_node_base *)0x0" (assignment_expression "p_Var2 = p_Var1->_M_nxt" identifier = (field_expression "p_Var1->_M_nxt" identifier -> field_identifier)) , (binary_expression "p_Var2 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }\n      return (uint *)p_Var2[1]._M_nxt;\n    }" { (if_statement "if (pkey != (Key *)0x0) {\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }" if (parenthesized_expression "(pkey != (Key *)0x0)" ( (binary_expression "pkey != (Key *)0x0" identifier != (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pkey = (Key)p_Var2[4]._M_nxt;\n      }" { (expression_statement "*pkey = (Key)p_Var2[4]._M_nxt;" (assignment_expression "*pkey = (Key)p_Var2[4]._M_nxt" (pointer_expression "*pkey" * identifier) = (cast_expression "(Key)p_Var2[4]._M_nxt" ( (type_descriptor "Key" type_identifier) ) (field_expression "p_Var2[4]._M_nxt" (subscript_expression "p_Var2[4]" identifier [ number_literal ]) . field_identifier))) ;) })) (return_statement "return (uint *)p_Var2[1]._M_nxt;" return (cast_expression "(uint *)p_Var2[1]._M_nxt" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "p_Var2[1]._M_nxt" (subscript_expression "p_Var2[1]" identifier [ number_literal ]) . field_identifier)) ;) })) (expression_statement "new_key_offset(this,length);" (call_expression "new_key_offset(this,length)" identifier (argument_list "(this,length)" ( identifier , identifier ))) ;) (expression_statement "puVar4 = add_string(this,s,length);" (assignment_expression "puVar4 = add_string(this,s,length)" identifier = (call_expression "add_string(this,s,length)" identifier (argument_list "(this,s,length)" ( identifier , identifier , identifier )))) ;) (expression_statement "pkey_00 = &element;" (assignment_expression "pkey_00 = &element" identifier = (pointer_expression "&element" & identifier)) ;) (expression_statement "element.first.length = hk.length;" (assignment_expression "element.first.length = hk.length" (field_expression "element.first.length" (field_expression "element.first" identifier . field_identifier) . field_identifier) = (field_expression "hk.length" identifier . field_identifier)) ;) (expression_statement "element.first.hash_code = hk.hash_code;" (assignment_expression "element.first.hash_code = hk.hash_code" (field_expression "element.first.hash_code" (field_expression "element.first" identifier . field_identifier) . field_identifier) = (field_expression "hk.hash_code" identifier . field_identifier)) ;) (expression_statement "element.first.string = puVar4;" (assignment_expression "element.first.string = puVar4" (field_expression "element.first.string" (field_expression "element.first" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "hk.string = puVar4;" (assignment_expression "hk.string = puVar4" (field_expression "hk.string" identifier . field_identifier) = identifier) ;) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" statement_identifier (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,_std" identifier , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,_unsigned_int>,_std" identifier , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,_unsigned_int>_>,_std" identifier , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" statement_identifier (ERROR "::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std:" : : (comma_expression "_Select1st,_gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,_gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" 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,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" 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,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" statement_identifier (ERROR "::_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" : : (comma_expression "_Hashtable_traits<true,_false,_true>_>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n    ::_M_emplace<std" identifier , (binary_expression "_true>_>\n    ::_M_emplace<std" (binary_expression "_true>_>\n    ::_M_emplace" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0);" (comma_expression "Hashkey,_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0)" identifier , (binary_expression "_unsigned_int>&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0)" identifier > (pointer_expression "&>\n              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0)" & (ERROR ">" >) (parenthesized_expression "((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0)" ( (comma_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins,this,0" (binary_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)&ins" (parenthesized_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                *)" ( (ERROR "_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,_std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std::allocator<std::pair<const_gold::Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std::__detail::_Select1st,_gold::Stringpool_template<unsigned_int>::Stringpool_eq,_gold::Stringpool_template<unsigned_int>::Stringpool_hash,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,_unsigned_int>_>,_std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "_unsigned_int>_>,_std" (binary_expression "_unsigned_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_gold" identifier , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_eq,_gold" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_eq" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_hash,_std" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_hash" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                *" identifier , (binary_expression "_true>_>\n                *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & identifier) , (comma_expression "this,0" identifier , number_literal)) ))))) ;))))))) (if_statement "if (ins.second == false) {\n      puVar4 = (uint *)&DAT_0000012c;\nLAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';\n      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);\n      (*(code *)PTR_do_gold_unreachable_004323c4)();\n      length_00 = *puVar4;\n      if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }\n      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);\n      return puVar4;\n    }" if (parenthesized_expression "(ins.second == false)" ( (binary_expression "ins.second == false" (field_expression "ins.second" identifier . field_identifier) == false) )) (compound_statement "{\n      puVar4 = (uint *)&DAT_0000012c;\nLAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';\n      this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);\n      (*(code *)PTR_do_gold_unreachable_004323c4)();\n      length_00 = *puVar4;\n      if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }\n      puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);\n      return puVar4;\n    }" { (expression_statement "puVar4 = (uint *)&DAT_0000012c;" (assignment_expression "puVar4 = (uint *)&DAT_0000012c" identifier = (cast_expression "(uint *)&DAT_0000012c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000012c" & identifier))) ;) (labeled_statement "LAB_0022acb4:\n      copy_00 = (char)PTR_s__0043226c + '`';" statement_identifier : (expression_statement "copy_00 = (char)PTR_s__0043226c + '`';" (assignment_expression "copy_00 = (char)PTR_s__0043226c + '`'" identifier = (binary_expression "(char)PTR_s__0043226c + '`'" (cast_expression "(char)PTR_s__0043226c" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'`'" ' character '))) ;)) (expression_statement "this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870);" (assignment_expression "this_00 = (Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870)" identifier = (call_expression "(Stringpool_template<unsigned_int> *)(PTR_s__0043226c + -0x3870)" (parenthesized_expression "(Stringpool_template<unsigned_int> *)" ( (binary_expression "Stringpool_template<unsigned_int> *" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (pointer_expression "*" * identifier)) )) (argument_list "(PTR_s__0043226c + -0x3870)" ( (binary_expression "PTR_s__0043226c + -0x3870" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "length_00 = *puVar4;" (assignment_expression "length_00 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (if_statement "if (length_00 != 0) {\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }" if (parenthesized_expression "(length_00 != 0)" ( (binary_expression "length_00 != 0" identifier != number_literal) )) (compound_statement "{\n        length_00 = 0;\n        puVar3 = puVar4;\n        do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);\n      }" { (expression_statement "length_00 = 0;" (assignment_expression "length_00 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = puVar4;" (assignment_expression "puVar3 = puVar4" identifier = identifier) ;) (do_statement "do {\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        } while (*puVar3 != 0);" do (compound_statement "{\n          puVar3 = puVar3 + 1;\n          length_00 = length_00 + 1;\n        }" { (expression_statement "puVar3 = puVar3 + 1;" (assignment_expression "puVar3 = puVar3 + 1" identifier = (binary_expression "puVar3 + 1" identifier + number_literal)) ;) (expression_statement "length_00 = length_00 + 1;" (assignment_expression "length_00 = length_00 + 1" identifier = (binary_expression "length_00 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*puVar3 != 0)" ( (binary_expression "*puVar3 != 0" (pointer_expression "*puVar3" * identifier) != number_literal) )) ;) })) (expression_statement "puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00);" (assignment_expression "puVar4 = add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00)" identifier = (call_expression "add_with_length(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00)" identifier (argument_list "(this_00,puVar4,length_00,(bool)copy_00,(Key *)pkey_00)" ( identifier , identifier , identifier , (cast_expression "(bool)copy_00" ( (type_descriptor "bool" primitive_type) ) identifier) , (cast_expression "(Key *)pkey_00" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (return_statement "return puVar4;" return identifier ;) })) (if_statement "if (pkey != (Key *)0x0) {\n      *pkey = KVar6;\n    }" if (parenthesized_expression "(pkey != (Key *)0x0)" ( (binary_expression "pkey != (Key *)0x0" identifier != (cast_expression "(Key *)0x0" ( (type_descriptor "Key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pkey = KVar6;\n    }" { (expression_statement "*pkey = KVar6;" (assignment_expression "*pkey = KVar6" (pointer_expression "*pkey" * identifier) = identifier) ;) })) }))) (return_statement "return puVar4;" return identifier ;) (ERROR "}" }))
(translation_unit "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  undefined3 in_register_0000001c;\n  uint uVar5;\n  uint *local_48;\n  uint local_44;\n  uint local_40;\n  uint local_3c;\n  uint *local_38;\n  uint local_34;\n  uint local_30;\n  undefined1 auStack_2c [4];\n  char local_28;\n  uint *local_20;\n  \n  uVar5 = *(int *)(this + 0x28) + 1;\n  local_3c = uVar5;\n  if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }\n  return local_20;\n}\n\n" (ERROR "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int" (binary_expression "uint * __thiscall" identifier * identifier) (ERROR "gold::Stringpool_template" identifier : : identifier) < identifier) > (ERROR "::" : :) (call_expression "add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" identifier (argument_list "(Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" ( (binary_expression "Stringpool_template<unsigned_int> *this" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (pointer_expression "*this" * identifier)) , (binary_expression "uint *param_1" identifier * identifier) , (ERROR "uint" identifier) identifier , (ERROR "bool" identifier) identifier , (binary_expression "uint *param_4" identifier * identifier) ))))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  undefined3 in_register_0000001c;\n  uint uVar5;\n  uint *local_48;\n  uint local_44;\n  uint local_40;\n  uint local_3c;\n  uint *local_38;\n  uint local_34;\n  uint local_30;\n  undefined1 auStack_2c [4];\n  char local_28;\n  uint *local_20;\n  \n  uVar5 = *(int *)(this + 0x28) + 1;\n  local_3c = uVar5;\n  if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }\n  return local_20;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined3 in_register_0000001c;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "uint *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "undefined1 auStack_2c [4];" type_identifier (array_declarator "auStack_2c [4]" identifier [ number_literal ]) ;) (declaration "char local_28;" primitive_type identifier ;) (declaration "uint *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (expression_statement "uVar5 = *(int *)(this + 0x28) + 1;" (assignment_expression "uVar5 = *(int *)(this + 0x28) + 1" identifier = (binary_expression "*(int *)(this + 0x28) + 1" (pointer_expression "*(int *)(this + 0x28)" * (cast_expression "(int *)(this + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x28)" ( (binary_expression "this + 0x28" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" identifier = identifier) ;) (if_statement "if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" if (parenthesized_expression "(CONCAT31(in_register_0000001c,param_3) == 0)" ( (binary_expression "CONCAT31(in_register_0000001c,param_3) == 0" (call_expression "CONCAT31(in_register_0000001c,param_3)" identifier (argument_list "(in_register_0000001c,param_3)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }" { (expression_statement "local_40 = string_hash(param_1,param_2);" (assignment_expression "local_40 = string_hash(param_1,param_2)" identifier = (call_expression "string_hash(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (expression_statement "local_48 = param_1;" (assignment_expression "local_48 = param_1" identifier = identifier) ;) (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" identifier = identifier) ;) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,std" identifier , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>,std" identifier , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>>,std" identifier , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" : : (comma_expression "_Select1st,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" statement_identifier (ERROR "::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" : : (comma_expression "_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n    ::_M_emplace<std" false , (binary_expression "true>>\n    ::_M_emplace<std" (binary_expression "true>>\n    ::_M_emplace" true >> (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (comma_expression "Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48)" identifier , (binary_expression "unsigned_int>&>\n              (&local_38,this,0,&local_48)" identifier > (pointer_expression "&>\n              (&local_38,this,0,&local_48)" & (ERROR ">" >) (parenthesized_expression "(&local_38,this,0,&local_48)" ( (comma_expression "&local_38,this,0,&local_48" (pointer_expression "&local_38" & identifier) , (comma_expression "this,0,&local_48" identifier , (comma_expression "0,&local_48" number_literal , (pointer_expression "&local_48" & identifier)))) ))))) ;))))))) (if_statement "if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }" if (parenthesized_expression "(local_34._0_1_ == '\0')" ( (binary_expression "local_34._0_1_ == '\0'" (field_expression "local_34._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }" { (expression_statement "uVar4 = 0x10d;" (assignment_expression "uVar4 = 0x10d" identifier = number_literal) ;) (if_statement "if (uVar5 == local_38[4]) goto LAB_0022acb4;" if (parenthesized_expression "(uVar5 == local_38[4])" ( (binary_expression "uVar5 == local_38[4]" identifier == (subscript_expression "local_38[4]" identifier [ number_literal ])) )) (goto_statement "goto LAB_0022acb4;" goto statement_identifier ;)) }) (else_clause "else {\n      new_key_offset(this,param_2);\n    }" else (compound_statement "{\n      new_key_offset(this,param_2);\n    }" { (expression_statement "new_key_offset(this,param_2);" (call_expression "new_key_offset(this,param_2)" identifier (argument_list "(this,param_2)" ( identifier , identifier ))) ;) }))) (if_statement "if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = local_38[4];\n    }" { (expression_statement "*param_4 = local_38[4];" (assignment_expression "*param_4 = local_38[4]" (pointer_expression "*param_4" * identifier) = (subscript_expression "local_38[4]" identifier [ number_literal ])) ;) })) (expression_statement "local_20 = (uint *)local_38[1];" (assignment_expression "local_20 = (uint *)local_38[1]" identifier = (cast_expression "(uint *)local_38[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_38[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" else (compound_statement "{\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" { (expression_statement "local_38 = param_1;" (assignment_expression "local_38 = param_1" identifier = identifier) ;) (expression_statement "local_34 = param_2;" (assignment_expression "local_34 = param_2" identifier = identifier) ;) (expression_statement "local_30 = string_hash(param_1,param_2);" (assignment_expression "local_30 = string_hash(param_1,param_2)" identifier = (call_expression "string_hash(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(*(uint *)(this + 4) == 0)" ( (binary_expression "*(uint *)(this + 4) == 0" (pointer_expression "*(uint *)(this + 4)" * (cast_expression "(uint *)(this + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (ERROR "piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::" (assignment_expression "piVar1 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) : :) (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" statement_identifier (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" : : (comma_expression "_Select1st,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" 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,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" 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,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (comma_expression "_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" false , (binary_expression "true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" true >> (ERROR "::" : :) (call_expression "_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" identifier (argument_list "((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" ( (parenthesized_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" ( (ERROR "_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (binary_expression "_Hashtable<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,gold" identifier , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_eq,gold" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_eq" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : (comma_expression "Stringpool_template<unsigned_int>::Stringpool_hash,std" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_hash" (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > (ERROR "::" : :) identifier) , identifier) : : identifier : : (comma_expression "_Mod_range_hashing,std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" false , (comma_expression "true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "true>>\n                                *)this" true >> (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (comma_expression "local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "local_30 % *(uint *)(this + 4)" identifier % (pointer_expression "*(uint *)(this + 4)" * (cast_expression "(uint *)(this + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) ))))) , (comma_expression "(Hashkey *)&local_38,local_30" (cast_expression "(Hashkey *)&local_38" ( (type_descriptor "Hashkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_38" & identifier)) , identifier))))) )) )))))) ;)))))) (if_statement "if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }" if (parenthesized_expression "((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0))" ( (binary_expression "(piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)" (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar2 = *piVar1, iVar2 != 0)" ( (comma_expression "iVar2 = *piVar1, iVar2 != 0" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }" { (if_statement "if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }" { (expression_statement "*param_4 = *(uint *)(iVar2 + 0x10);" (assignment_expression "*param_4 = *(uint *)(iVar2 + 0x10)" (pointer_expression "*param_4" * identifier) = (pointer_expression "*(uint *)(iVar2 + 0x10)" * (cast_expression "(uint *)(iVar2 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) })) (return_statement "return *(uint **)(iVar2 + 4);" return (pointer_expression "*(uint **)(iVar2 + 4)" * (cast_expression "(uint **)(iVar2 + 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) ;) })) (expression_statement "new_key_offset(this,param_2);" (call_expression "new_key_offset(this,param_2)" identifier (argument_list "(this,param_2)" ( identifier , identifier ))) ;) (expression_statement "local_48 = (uint *)add_string(this,param_1,param_2);" (assignment_expression "local_48 = (uint *)add_string(this,param_1,param_2)" identifier = (cast_expression "(uint *)add_string(this,param_1,param_2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add_string(this,param_1,param_2)" identifier (argument_list "(this,param_1,param_2)" ( identifier , identifier , identifier ))))) ;) (expression_statement "local_44 = local_34;" (assignment_expression "local_44 = local_34" identifier = identifier) ;) (expression_statement "local_40 = local_30;" (assignment_expression "local_40 = local_30" identifier = identifier) ;) (expression_statement "local_38 = local_48;" (assignment_expression "local_38 = local_48" identifier = identifier) ;) (expression_statement "local_20 = local_48;" (assignment_expression "local_20 = local_48" identifier = identifier) ;) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std:" : : (binary_expression "_Hashtable<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey,std" identifier , identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>,std" identifier , (binary_expression "unsigned_int>,std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Hashkey_const,unsigned_int>>,std" identifier , (binary_expression "unsigned_int>>,std" identifier >> (ERROR "," ,) identifier)) :) : (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" : : (comma_expression "_Select1st,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_eq,gold" identifier , identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > : : (comma_expression "Stringpool_hash,std" identifier , identifier) :) : (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" 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,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::_Prime_rehash_policy,std:" : : (comma_expression "_Prime_rehash_policy,std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" statement_identifier (ERROR "::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" : : (comma_expression "_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "false,true>>\n    ::_M_emplace<std" false , (binary_expression "true>>\n    ::_M_emplace<std" (binary_expression "true>>\n    ::_M_emplace" true >> (ERROR "::" : :) identifier) < identifier))) : : (binary_expression "pair<gold" identifier < identifier) : : (binary_expression "Stringpool_template<unsigned_int" identifier < identifier) > :) : (expression_statement "Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (comma_expression "Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48)" identifier , (binary_expression "unsigned_int>&>\n              (auStack_2c,this,0,&local_48)" identifier > (pointer_expression "&>\n              (auStack_2c,this,0,&local_48)" & (ERROR ">" >) (parenthesized_expression "(auStack_2c,this,0,&local_48)" ( (comma_expression "auStack_2c,this,0,&local_48" identifier , (comma_expression "this,0,&local_48" identifier , (comma_expression "0,&local_48" number_literal , (pointer_expression "&local_48" & identifier)))) ))))) ;))))))) (if_statement "if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }" if (parenthesized_expression "(local_28 == '\0')" ( (binary_expression "local_28 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }" { (expression_statement "uVar4 = 300;" (assignment_expression "uVar4 = 300" identifier = number_literal) ;) (labeled_statement "LAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);" statement_identifier : (expression_statement "puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);" (assignment_expression "puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" identifier = (cast_expression "(uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" ( (binary_expression "PTR_DAT_0043226c + -0x3870" identifier + number_literal) , identifier , (binary_expression "PTR_DAT_0043226c + -0x37a0" identifier + number_literal) ))))) ;)) (return_statement "return puVar3;" return identifier ;) })) (if_statement "if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }" if (parenthesized_expression "(param_4 != (uint *)0x0)" ( (binary_expression "param_4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *param_4 = uVar5;\n    }" { (expression_statement "*param_4 = uVar5;" (assignment_expression "*param_4 = uVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) })) }))) (return_statement "return local_20;" return identifier ;) }))
(translation_unit (ERROR (binary_expression (binary_expression (binary_expression IDENT * IDENT) (ERROR IDENT : : IDENT) < IDENT) > (ERROR : :) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT < IDENT) > (pointer_expression * IDENT)) , (binary_expression IDENT * IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) IDENT , (binary_expression IDENT * IDENT) ))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , (binary_expression IDENT > (ERROR ,) IDENT)) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , (binary_expression IDENT >> (ERROR ,) IDENT)) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL >> (ERROR : :) IDENT) < IDENT))) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > :) : (expression_statement (comma_expression IDENT , (binary_expression IDENT > (pointer_expression & (ERROR >) (parenthesized_expression ( (comma_expression (pointer_expression & IDENT) , (comma_expression IDENT , (comma_expression LIT , (pointer_expression & IDENT)))) ))))) ;))))))) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , (binary_expression IDENT > (ERROR ,) IDENT)) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , (binary_expression IDENT >> (ERROR ,) IDENT)) : :) (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier : (ERROR :) (expression_statement (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression BOOL >> (ERROR : :) (call_expression IDENT (argument_list ( (parenthesized_expression ( (ERROR (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , (binary_expression IDENT > (ERROR ,) IDENT)) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , (binary_expression IDENT >> (ERROR ,) IDENT)) : : IDENT : : (comma_expression IDENT , IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , IDENT) : : (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (ERROR : :) IDENT) , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : : (comma_expression IDENT , IDENT) : : IDENT : :) (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (comma_expression (binary_expression BOOL >> (pointer_expression * (ERROR )) IDENT)) , (comma_expression (binary_expression IDENT % (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (comma_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , IDENT))))) )) )))))) ;)))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , (binary_expression IDENT > (ERROR ,) IDENT)) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , (binary_expression IDENT >> (ERROR ,) IDENT)) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) : : (binary_expression IDENT < IDENT) > : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression IDENT , IDENT) :) : (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < BOOL) , (comma_expression BOOL , (binary_expression (binary_expression BOOL >> (ERROR : :) IDENT) < IDENT))) : : (binary_expression IDENT < IDENT) : : (binary_expression IDENT < IDENT) > :) : (expression_statement (comma_expression IDENT , (binary_expression IDENT > (pointer_expression & (ERROR >) (parenthesized_expression ( (comma_expression IDENT , (comma_expression IDENT , (comma_expression LIT , (pointer_expression & IDENT)))) ))))) ;))))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT + LIT) ))))) ;)) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) }))) (return_statement return IDENT ;) }))
(ERROR "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int>::add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (binary_expression "uint * __thiscall\ngold::Stringpool_template<unsigned_int" (binary_expression "uint * __thiscall" (identifier "uint") (* "*") (identifier "__thiscall")) (ERROR "gold::Stringpool_template" (identifier "gold") (: ":") (: ":") (identifier "Stringpool_template")) (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (call_expression "add_with_length\n          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (identifier "add_with_length") (argument_list "(Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,\n          uint *param_4)" (( "(") (binary_expression "Stringpool_template<unsigned_int> *this" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (pointer_expression "*this" (* "*") (identifier "this"))) (, ",") (binary_expression "uint *param_1" (identifier "uint") (* "*") (identifier "param_1")) (, ",") (ERROR "uint" (identifier "uint")) (identifier "param_2") (, ",") (ERROR "bool" (identifier "bool")) (identifier "param_3") (, ",") (binary_expression "uint *param_4" (identifier "uint") (* "*") (identifier "param_4")) () ")"))))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  uint *puVar3;\n  undefined4 uVar4;\n  undefined3 in_register_0000001c;\n  uint uVar5;\n  uint *local_48;\n  uint local_44;\n  uint local_40;\n  uint local_3c;\n  uint *local_38;\n  uint local_34;\n  uint local_30;\n  undefined1 auStack_2c [4];\n  char local_28;\n  uint *local_20;\n  \n  uVar5 = *(int *)(this + 0x28) + 1;\n  local_3c = uVar5;\n  if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }\n  return local_20;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined3 in_register_0000001c;" (type_identifier "undefined3") (identifier "in_register_0000001c") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint *local_48;" (type_identifier "uint") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "uint *local_38;" (type_identifier "uint") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "undefined1 auStack_2c [4];" (type_identifier "undefined1") (array_declarator "auStack_2c [4]" (identifier "auStack_2c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "char local_28;" (primitive_type "char") (identifier "local_28") (; ";")) (declaration "uint *local_20;" (type_identifier "uint") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (expression_statement "uVar5 = *(int *)(this + 0x28) + 1;" (assignment_expression "uVar5 = *(int *)(this + 0x28) + 1" (identifier "uVar5") (= "=") (binary_expression "*(int *)(this + 0x28) + 1" (pointer_expression "*(int *)(this + 0x28)" (* "*") (cast_expression "(int *)(this + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x28)" (( "(") (binary_expression "this + 0x28" (identifier "this") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_3c = uVar5;" (assignment_expression "local_3c = uVar5" (identifier "local_3c") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (CONCAT31(in_register_0000001c,param_3) == 0) {\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }\n  else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" (if "if") (parenthesized_expression "(CONCAT31(in_register_0000001c,param_3) == 0)" (( "(") (binary_expression "CONCAT31(in_register_0000001c,param_3) == 0" (call_expression "CONCAT31(in_register_0000001c,param_3)" (identifier "CONCAT31") (argument_list "(in_register_0000001c,param_3)" (( "(") (identifier "in_register_0000001c") (, ",") (identifier "param_3") () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_40 = string_hash(param_1,param_2);\n    local_48 = param_1;\n    local_44 = param_2;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);\n    if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }\n    local_20 = (uint *)local_38[1];\n  }" ({ "{") (expression_statement "local_40 = string_hash(param_1,param_2);" (assignment_expression "local_40 = string_hash(param_1,param_2)" (identifier "local_40") (= "=") (call_expression "string_hash(param_1,param_2)" (identifier "string_hash") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "local_48 = param_1;" (assignment_expression "local_48 = param_1" (identifier "local_48") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_44 = param_2;" (assignment_expression "local_44 = param_2" (identifier "local_44") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (statement_identifier "std") (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std:" (: ":") (: ":") (binary_expression "_Hashtable<gold" (identifier "_Hashtable") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Hashkey,std" (identifier "Hashkey") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Hashkey_const,unsigned_int>,std" (identifier "Hashkey_const") (, ",") (binary_expression "unsigned_int>,std" (identifier "unsigned_int") (> ">") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Hashkey_const,unsigned_int>>,std" (identifier "Hashkey_const") (, ",") (binary_expression "unsigned_int>>,std" (identifier "unsigned_int") (>> ">>") (ERROR "," (, ",")) (identifier "std"))) (: ":")) (: ":") (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" (: ":") (: ":") (comma_expression "_Select1st,gold" (identifier "_Select1st") (, ",") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Stringpool_eq,gold" (identifier "Stringpool_eq") (, ",") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Stringpool_hash,std" (identifier "Stringpool_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" (: ":") (: ":") (comma_expression "_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "false,true>>\n    ::_M_emplace<std" (false "false") (, ",") (binary_expression "true>>\n    ::_M_emplace<std" (binary_expression "true>>\n    ::_M_emplace" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (identifier "_M_emplace")) (< "<") (identifier "std")))) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":")) (: ":") (expression_statement "Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48);" (comma_expression "Hashkey,unsigned_int>&>\n              (&local_38,this,0,&local_48)" (identifier "Hashkey") (, ",") (binary_expression "unsigned_int>&>\n              (&local_38,this,0,&local_48)" (identifier "unsigned_int") (> ">") (pointer_expression "&>\n              (&local_38,this,0,&local_48)" (& "&") (ERROR ">" (> ">")) (parenthesized_expression "(&local_38,this,0,&local_48)" (( "(") (comma_expression "&local_38,this,0,&local_48" (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (comma_expression "this,0,&local_48" (identifier "this") (, ",") (comma_expression "0,&local_48" (number_literal "0") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48"))))) () ")"))))) (; ";")))))))) (if_statement "if (local_34._0_1_ == '\0') {\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }\n    else {\n      new_key_offset(this,param_2);\n    }" (if "if") (parenthesized_expression "(local_34._0_1_ == '\0')" (( "(") (binary_expression "local_34._0_1_ == '\0'" (field_expression "local_34._0_1_" (identifier "local_34") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = 0x10d;\n      if (uVar5 == local_38[4]) goto LAB_0022acb4;\n    }" ({ "{") (expression_statement "uVar4 = 0x10d;" (assignment_expression "uVar4 = 0x10d" (identifier "uVar4") (= "=") (number_literal "0x10d")) (; ";")) (if_statement "if (uVar5 == local_38[4]) goto LAB_0022acb4;" (if "if") (parenthesized_expression "(uVar5 == local_38[4])" (( "(") (binary_expression "uVar5 == local_38[4]" (identifier "uVar5") (== "==") (subscript_expression "local_38[4]" (identifier "local_38") ([ "[") (number_literal "4") (] "]"))) () ")")) (goto_statement "goto LAB_0022acb4;" (goto "goto") (statement_identifier "LAB_0022acb4") (; ";"))) (} "}")) (else_clause "else {\n      new_key_offset(this,param_2);\n    }" (else "else") (compound_statement "{\n      new_key_offset(this,param_2);\n    }" ({ "{") (expression_statement "new_key_offset(this,param_2);" (call_expression "new_key_offset(this,param_2)" (identifier "new_key_offset") (argument_list "(this,param_2)" (( "(") (identifier "this") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")))) (if_statement "if (param_4 != (uint *)0x0) {\n      *param_4 = local_38[4];\n    }" (if "if") (parenthesized_expression "(param_4 != (uint *)0x0)" (( "(") (binary_expression "param_4 != (uint *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *param_4 = local_38[4];\n    }" ({ "{") (expression_statement "*param_4 = local_38[4];" (assignment_expression "*param_4 = local_38[4]" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (subscript_expression "local_38[4]" (identifier "local_38") ([ "[") (number_literal "4") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_20 = (uint *)local_38[1];" (assignment_expression "local_20 = (uint *)local_38[1]" (identifier "local_20") (= "=") (cast_expression "(uint *)local_38[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_38[1]" (identifier "local_38") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" (else "else") (compound_statement "{\n    local_38 = param_1;\n    local_34 = param_2;\n    local_30 = string_hash(param_1,param_2);\n    if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }\n    piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;\n    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }\n    new_key_offset(this,param_2);\n    local_48 = (uint *)add_string(this,param_1,param_2);\n    local_44 = local_34;\n    local_40 = local_30;\n    local_38 = local_48;\n    local_20 = local_48;\n    std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);\n    if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }\n    if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }\n  }" ({ "{") (expression_statement "local_38 = param_1;" (assignment_expression "local_38 = param_1" (identifier "local_38") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_34 = param_2;" (assignment_expression "local_34 = param_2" (identifier "local_34") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_30 = string_hash(param_1,param_2);" (assignment_expression "local_30 = string_hash(param_1,param_2)" (identifier "local_30") (= "=") (call_expression "string_hash(param_1,param_2)" (identifier "string_hash") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (*(uint *)(this + 4) == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(*(uint *)(this + 4) == 0)" (( "(") (binary_expression "*(uint *)(this + 4) == 0" (pointer_expression "*(uint *)(this + 4)" (* "*") (cast_expression "(uint *)(this + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (ERROR "piVar1 = (int *)std::\n                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::" (assignment_expression "piVar1 = (int *)std" (identifier "piVar1") (= "=") (cast_expression "(int *)std" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "std"))) (: ":") (: ":") (binary_expression "_Hashtable<gold" (identifier "_Hashtable") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Hashkey,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Hashkey")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Hashkey_const")) (, ",") (binary_expression "unsigned_int>,std" (identifier "unsigned_int") (> ">") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Hashkey_const")) (, ",") (binary_expression "unsigned_int>>,std" (identifier "unsigned_int") (>> ">>") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":")) (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (statement_identifier "__detail") (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" (: ":") (: ":") (comma_expression "_Select1st,gold" (identifier "_Select1st") (, ",") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Stringpool_eq,gold" (identifier "Stringpool_eq") (, ",") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Stringpool_hash,std" (identifier "Stringpool_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (statement_identifier "__detail") (: ":") (ERROR ":" (: ":")) (expression_statement "_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)\n    ;" (comma_expression "_Hashtable_traits<true,false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "false,true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (false "false") (, ",") (binary_expression "true>>\n                    ::_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (call_expression "_M_find_before_node\n                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (identifier "_M_find_before_node") (argument_list "((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (( "(") (parenthesized_expression "(_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)" (( "(") (ERROR "_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::" (binary_expression "_Hashtable<gold" (identifier "_Hashtable") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Hashkey,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Hashkey")) (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Hashkey_const")) (, ",") (binary_expression "unsigned_int>,std" (identifier "unsigned_int") (> ">") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std" (binary_expression "Stringpool_template<unsigned_int>::Hashkey_const" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Hashkey_const")) (, ",") (binary_expression "unsigned_int>>,std" (identifier "unsigned_int") (>> ">>") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Select1st,gold" (identifier "_Select1st") (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Stringpool_eq,gold" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_eq" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Stringpool_eq")) (, ",") (identifier "gold")) (: ":") (: ":") (comma_expression "Stringpool_template<unsigned_int>::Stringpool_hash,std" (binary_expression "Stringpool_template<unsigned_int>::Stringpool_hash" (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (ERROR "::" (: ":") (: ":")) (identifier "Stringpool_hash")) (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":") (: ":") (identifier "__detail") (: ":") (: ":")) (comma_expression "_Hashtable_traits<true,false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "false,true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (false "false") (, ",") (comma_expression "true>>\n                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "true>>\n                                *)this" (true "true") (>> ">>") (pointer_expression "*)this" (* "*") (ERROR ")" () ")")) (identifier "this"))) (, ",") (comma_expression "local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30" (binary_expression "local_30 % *(uint *)(this + 4)" (identifier "local_30") (% "%") (pointer_expression "*(uint *)(this + 4)" (* "*") (cast_expression "(uint *)(this + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")"))))) (, ",") (comma_expression "(Hashkey *)&local_38,local_30" (cast_expression "(Hashkey *)&local_38" (( "(") (type_descriptor "Hashkey *" (type_identifier "Hashkey") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (, ",") (identifier "local_30")))))) () ")")) () "")))))) (; ";"))))))) (if_statement "if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }" (if "if") (parenthesized_expression "((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0))" (( "(") (binary_expression "(piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)" (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = *piVar1, iVar2 != 0)" (( "(") (comma_expression "iVar2 = *piVar1, iVar2 != 0" (assignment_expression "iVar2 = *piVar1" (identifier "iVar2") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }\n      return *(uint **)(iVar2 + 4);\n    }" ({ "{") (if_statement "if (param_4 != (uint *)0x0) {\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }" (if "if") (parenthesized_expression "(param_4 != (uint *)0x0)" (( "(") (binary_expression "param_4 != (uint *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *param_4 = *(uint *)(iVar2 + 0x10);\n      }" ({ "{") (expression_statement "*param_4 = *(uint *)(iVar2 + 0x10);" (assignment_expression "*param_4 = *(uint *)(iVar2 + 0x10)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (pointer_expression "*(uint *)(iVar2 + 0x10)" (* "*") (cast_expression "(uint *)(iVar2 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (return_statement "return *(uint **)(iVar2 + 4);" (return "return") (pointer_expression "*(uint **)(iVar2 + 4)" (* "*") (cast_expression "(uint **)(iVar2 + 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (expression_statement "new_key_offset(this,param_2);" (call_expression "new_key_offset(this,param_2)" (identifier "new_key_offset") (argument_list "(this,param_2)" (( "(") (identifier "this") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "local_48 = (uint *)add_string(this,param_1,param_2);" (assignment_expression "local_48 = (uint *)add_string(this,param_1,param_2)" (identifier "local_48") (= "=") (cast_expression "(uint *)add_string(this,param_1,param_2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "add_string(this,param_1,param_2)" (identifier "add_string") (argument_list "(this,param_1,param_2)" (( "(") (identifier "this") (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))))) (; ";")) (expression_statement "local_44 = local_34;" (assignment_expression "local_44 = local_34" (identifier "local_44") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_40 = local_30;" (assignment_expression "local_40 = local_30" (identifier "local_40") (= "=") (identifier "local_30")) (; ";")) (expression_statement "local_38 = local_48;" (assignment_expression "local_38 = local_48" (identifier "local_38") (= "=") (identifier "local_48")) (; ";")) (expression_statement "local_20 = local_48;" (assignment_expression "local_20 = local_48" (identifier "local_20") (= "=") (identifier "local_48")) (; ";")) (labeled_statement "std::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (statement_identifier "std") (ERROR "::\n    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std:" (: ":") (: ":") (binary_expression "_Hashtable<gold" (identifier "_Hashtable") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Hashkey,std" (identifier "Hashkey") (, ",") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Hashkey_const,unsigned_int>,std" (identifier "Hashkey_const") (, ",") (binary_expression "unsigned_int>,std" (identifier "unsigned_int") (> ">") (ERROR "," (, ",")) (identifier "std"))) (: ":") (: ":") (binary_expression "allocator<std" (identifier "allocator") (< "<") (identifier "std")) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Hashkey_const,unsigned_int>>,std" (identifier "Hashkey_const") (, ",") (binary_expression "unsigned_int>>,std" (identifier "unsigned_int") (>> ">>") (ERROR "," (, ",")) (identifier "std"))) (: ":")) (: ":") (labeled_statement "__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std:" (: ":") (: ":") (comma_expression "_Select1st,gold" (identifier "_Select1st") (, ",") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Stringpool_eq,gold" (identifier "Stringpool_eq") (, ",") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":") (: ":") (comma_expression "Stringpool_hash,std" (identifier "Stringpool_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Mod_range_hashing,std:" (: ":") (: ":") (comma_expression "_Mod_range_hashing,std" (identifier "_Mod_range_hashing") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Default_ranged_hash,std:" (: ":") (: ":") (comma_expression "_Default_ranged_hash,std" (identifier "_Default_ranged_hash") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Prime_rehash_policy,std:" (: ":") (: ":") (comma_expression "_Prime_rehash_policy,std" (identifier "_Prime_rehash_policy") (, ",") (identifier "std")) (: ":")) (: ":") (labeled_statement "__detail::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (statement_identifier "__detail") (ERROR "::_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>:" (: ":") (: ":") (comma_expression "_Hashtable_traits<true,false,true>>\n    ::_M_emplace<std" (binary_expression "_Hashtable_traits<true" (identifier "_Hashtable_traits") (< "<") (true "true")) (, ",") (comma_expression "false,true>>\n    ::_M_emplace<std" (false "false") (, ",") (binary_expression "true>>\n    ::_M_emplace<std" (binary_expression "true>>\n    ::_M_emplace" (true "true") (>> ">>") (ERROR "::" (: ":") (: ":")) (identifier "_M_emplace")) (< "<") (identifier "std")))) (: ":") (: ":") (binary_expression "pair<gold" (identifier "pair") (< "<") (identifier "gold")) (: ":") (: ":") (binary_expression "Stringpool_template<unsigned_int" (identifier "Stringpool_template") (< "<") (identifier "unsigned_int")) (> ">") (: ":")) (: ":") (expression_statement "Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48);" (comma_expression "Hashkey,unsigned_int>&>\n              (auStack_2c,this,0,&local_48)" (identifier "Hashkey") (, ",") (binary_expression "unsigned_int>&>\n              (auStack_2c,this,0,&local_48)" (identifier "unsigned_int") (> ">") (pointer_expression "&>\n              (auStack_2c,this,0,&local_48)" (& "&") (ERROR ">" (> ">")) (parenthesized_expression "(auStack_2c,this,0,&local_48)" (( "(") (comma_expression "auStack_2c,this,0,&local_48" (identifier "auStack_2c") (, ",") (comma_expression "this,0,&local_48" (identifier "this") (, ",") (comma_expression "0,&local_48" (number_literal "0") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48"))))) () ")"))))) (; ";")))))))) (if_statement "if (local_28 == '\0') {\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }" (if "if") (parenthesized_expression "(local_28 == '\0')" (( "(") (binary_expression "local_28 == '\0'" (identifier "local_28") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar4 = 300;\nLAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);\n      return puVar3;\n    }" ({ "{") (expression_statement "uVar4 = 300;" (assignment_expression "uVar4 = 300" (identifier "uVar4") (= "=") (number_literal "300")) (; ";")) (labeled_statement "LAB_0022acb4:\n      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);" (statement_identifier "LAB_0022acb4") (: ":") (expression_statement "puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);" (assignment_expression "puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" (identifier "puVar3") (= "=") (cast_expression "(uint *)(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0)" (( "(") (binary_expression "PTR_DAT_0043226c + -0x3870" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x3870")) (, ",") (identifier "uVar4") (, ",") (binary_expression "PTR_DAT_0043226c + -0x37a0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "-0x37a0")) () ")"))))) (; ";"))) (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (if_statement "if (param_4 != (uint *)0x0) {\n      *param_4 = uVar5;\n    }" (if "if") (parenthesized_expression "(param_4 != (uint *)0x0)" (( "(") (binary_expression "param_4 != (uint *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *param_4 = uVar5;\n    }" ({ "{") (expression_statement "*param_4 = uVar5;" (assignment_expression "*param_4 = uVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (} "}")))) (return_statement "return local_20;" (return "return") (identifier "local_20") (; ";")) (} "}"))
(translation_unit (ERROR (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier) (identifier)) right: (identifier)) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (pointer_expression argument: (identifier))) (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier)))))) (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) 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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (true)) right: (comma_expression left: (false) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (identifier)) right: (identifier)))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (expression_statement (comma_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (parenthesized_expression (comma_expression left: (pointer_expression argument: (identifier)) right: (comma_expression left: (identifier) right: (comma_expression left: (number_literal) right: (pointer_expression argument: (identifier)))))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (ERROR (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (comma_expression left: (binary_expression left: (identifier) right: (true)) right: (comma_expression left: (false) right: (binary_expression left: (true) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (parenthesized_expression (ERROR (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (identifier) (comma_expression left: (identifier) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (identifier)) (comma_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR) right: (identifier)) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (identifier) (comma_expression left: (identifier) right: (identifier)) (identifier)) (comma_expression left: (binary_expression left: (identifier) right: (true)) right: (comma_expression left: (false) right: (comma_expression left: (binary_expression left: (true) right: (pointer_expression (ERROR) argument: (identifier))) right: (comma_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (comma_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))) right: (identifier))))))) (MISSING ")")))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (return_statement (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)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (true)) right: (comma_expression left: (false) right: (binary_expression left: (binary_expression left: (true) (ERROR) right: (identifier)) right: (identifier)))) (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier))) (expression_statement (comma_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression (ERROR) argument: (parenthesized_expression (comma_expression left: (identifier) right: (comma_expression left: (identifier) right: (comma_expression left: (number_literal) right: (pointer_expression argument: (identifier)))))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (binary_expression left: (identifier) right: (number_literal)))))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))))))) (return_statement (identifier))))

/* gold::Stringpool_template<unsigned int>::MASKED(unsigned int const*, unsigned int, bool,
   unsigned int*) */

uint * __thiscall
gold::Stringpool_template<unsigned_int>::MASKED
          (Stringpool_template<unsigned_int> *this,uint *param_1,uint param_2,bool param_3,
          uint *param_4)

{
  int *piVar1;
  int iVar2;
  uint *puVar3;
  undefined4 uVar4;
  undefined3 in_register_0000001c;
  uint uVar5;
  uint *local_48;
  uint local_44;
  uint local_40;
  uint local_3c;
  uint *local_38;
  uint local_34;
  uint local_30;
  undefined1 auStack_2c [4];
  char local_28;
  uint *local_20;
  
  uVar5 = *(int *)(this + 0x28) + 1;
  local_3c = uVar5;
  if (CONCAT31(in_register_0000001c,param_3) == 0) {
    local_40 = string_hash(param_1,param_2);
    local_48 = param_1;
    local_44 = param_2;
    std::
    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>
              (&local_38,this,0,&local_48);
    if (local_34._0_1_ == '\0') {
      uVar4 = 0x10d;
      if (uVar5 == local_38[4]) goto LAB_0022acb4;
    }
    else {
      new_key_offset(this,param_2);
    }
    if (param_4 != (uint *)0x0) {
      *param_4 = local_38[4];
    }
    local_20 = (uint *)local_38[1];
  }
  else {
    local_38 = param_1;
    local_34 = param_2;
    local_30 = string_hash(param_1,param_2);
    if (*(uint *)(this + 4) == 0) {
      trap(7);
    }
    piVar1 = (int *)std::
                    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
                    ::_M_find_before_node
                              ((_Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
                                *)this,local_30 % *(uint *)(this + 4),(Hashkey *)&local_38,local_30)
    ;
    if ((piVar1 != (int *)0x0) && (iVar2 = *piVar1, iVar2 != 0)) {
      if (param_4 != (uint *)0x0) {
        *param_4 = *(uint *)(iVar2 + 0x10);
      }
      return *(uint **)(iVar2 + 4);
    }
    new_key_offset(this,param_2);
    local_48 = (uint *)add_string(this,param_1,param_2);
    local_44 = local_34;
    local_40 = local_30;
    local_38 = local_48;
    local_20 = local_48;
    std::
    _Hashtable<gold::Stringpool_template<unsigned_int>::Hashkey,std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>,std::allocator<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey_const,unsigned_int>>,std::__detail::_Select1st,gold::Stringpool_template<unsigned_int>::Stringpool_eq,gold::Stringpool_template<unsigned_int>::Stringpool_hash,std::__detail::_Mod_range_hashing,std::__detail::_Default_ranged_hash,std::__detail::_Prime_rehash_policy,std::__detail::_Hashtable_traits<true,false,true>>
    ::_M_emplace<std::pair<gold::Stringpool_template<unsigned_int>::Hashkey,unsigned_int>&>
              (auStack_2c,this,0,&local_48);
    if (local_28 == '\0') {
      uVar4 = 300;
LAB_0022acb4:
      puVar3 = (uint *)(*(code *)PTR_do_gold_unreachable_004323c4)
                                 (PTR_DAT_0043226c + -0x3870,uVar4,PTR_DAT_0043226c + -0x37a0);
      return puVar3;
    }
    if (param_4 != (uint *)0x0) {
      *param_4 = uVar5;
    }
  }
  return local_20;
}

