
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void add_exact_match(Version_script_info * this, string * match,
   Version_tree * v, bool is_global, Version_expression * ve, Exact * pe) */

void __thiscall
gold::Version_script_info::add_exact_match
          (Version_script_info *this,string *match,Version_tree *v,bool is_global,
          Version_expression *ve,Exact *pe)

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar2;
  size_type *psVar3;
  __bucket_type *pp_Var4;
  pointer pcVar5;
  uint uVar6;
  _Hash_node_base *p_Var7;
  __bucket_type *pp_Var8;
  pointer pcVar9;
  size_type sVar10;
  _Hash_node_base *p_Var11;
  _Alloc_hider _Var12;
  _Hash_node_base *p_Var13;
  __node_base *p_Var14;
  int iVar15;
  char *format;
  uint local_64;
  char local_54 [4];
  size_type local_50;
  size_t local_48;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_44;
  Version_tree *local_2c;
  _Hash_node_base *local_28;
  Version_expression *local_24;
  _Hash_node_base *local_20;
  undefined4 uStack_14;
  
  paVar1 = &local_44.field_2;
  uStack_14 = 0x119f81;
  pcVar5 = (match->_M_dataplus)._M_p;
  local_44._M_dataplus._M_p = (pointer)paVar1;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0);
  local_20 = (_Hash_node_base *)0x0;
  local_2c = v;
  local_28 = (_Hash_node_base *)CONCAT31(local_28._1_3_,is_global);
  local_24 = ve;
                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */
  p_Var11 = (_Hash_node_base *)operator_new(0x30);
  sVar10 = local_44._M_string_length;
  p_Var11->_M_nxt = (_Hash_node_base *)0x0;
  paVar2 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
            *)(p_Var11 + 3);
  p_Var11[1]._M_nxt = (_Hash_node_base *)paVar2;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)local_44._M_dataplus._M_p == paVar1) {
    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;
    p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;
    p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;
    p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;
    _Var12._M_p = (pointer)paVar2;
  }
  else {
    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;
    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;
    _Var12._M_p = local_44._M_dataplus._M_p;
  }
  p_Var11[7]._M_nxt = (_Hash_node_base *)local_2c;
  p_Var11[2]._M_nxt = (_Hash_node_base *)local_44._M_string_length;
  p_Var11[8]._M_nxt = local_28;
  local_44._M_string_length = 0;
  p_Var11[9]._M_nxt = (_Hash_node_base *)local_24;
  local_44.field_2._M_allocated_capacity = local_44.field_2._M_allocated_capacity & 0xffffff00;
  p_Var11[10]._M_nxt = local_20;
  local_44._M_dataplus._M_p = (pointer)paVar1;
  p_Var13 = (_Hash_node_base *)std::_Hash_bytes(_Var12._M_p,sVar10,0xc70f6907);
  uVar6 = (pe->_M_h)._M_bucket_count;
  local_64 = (uint)p_Var13 % uVar6;
  p_Var14 = std::
            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);
  if ((p_Var14 != (__node_base *)0x0) &&
     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)) {
    if (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                   *)p_Var11[1]._M_nxt) {
      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                       *)p_Var11[1]._M_nxt);
    }
    operator_delete(p_Var11);
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)local_44._M_dataplus._M_p != paVar1) {
      operator_delete(local_44._M_dataplus._M_p);
    }
    p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;
    if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&
       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||
        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {
      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {
        pcVar9 = (match->_M_dataplus)._M_p;
        format = (char *)gettext(
                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"
                                );
        gold_error(format,pcVar9,pcVar5);
        return;
      }
    }
    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {
      p_Var7[10]._M_nxt = (_Hash_node_base *)v;
    }
    return;
  }
  local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize;
                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */
  std::__detail::_Prime_rehash_policy::_M_need_rehash
            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);
  if (local_54[0] != '\0') {
                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */
    std::
    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>
                 *)pe,local_50,&local_48);
    local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;
  }
  p_Var11[0xb]._M_nxt = p_Var13;
  pp_Var8 = (pe->_M_h)._M_buckets;
  pp_Var4 = pp_Var8 + local_64;
  if (*pp_Var4 == (__bucket_type)0x0) {
    p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;
    (pe->_M_h)._M_before_begin._M_nxt = p_Var11;
    p_Var11->_M_nxt = p_Var13;
    if (p_Var13 != (_Hash_node_base *)0x0) {
      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;
    }
    *pp_Var4 = &(pe->_M_h)._M_before_begin;
  }
  else {
    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;
    (*pp_Var4)->_M_nxt = p_Var11;
  }
  psVar3 = &(pe->_M_h)._M_element_count;
  *psVar3 = *psVar3 + 1;
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)local_44._M_dataplus._M_p == paVar1) {
    return;
  }
  operator_delete(local_44._M_dataplus._M_p);
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,
                 int *param_6)

{
  uint *puVar1;
  uint uVar2;
  int iVar3;
  size_t __n;
  void *__s2;
  int *piVar4;
  uint *puVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  undefined4 uVar9;
  uint local_64;
  char local_54 [4];
  undefined4 local_50;
  int local_48;
  uint *local_44;
  int local_40;
  uint local_3c;
  int local_38;
  int local_34;
  int local_30;
  undefined4 *local_2c;
  int local_28;
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x119f81;
  local_44 = &local_3c;
  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);
  local_20 = 0;
  local_2c = param_3;
  local_28 = CONCAT31(local_28._1_3_,param_4);
  local_24 = param_5;
                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */
  piVar4 = (int *)FUN_0017ebf0(0x30);
  iVar3 = local_40;
  *piVar4 = 0;
  puVar1 = (uint *)(piVar4 + 3);
  piVar4[1] = (int)puVar1;
  if (local_44 == &local_3c) {
    piVar4[3] = local_3c;
    piVar4[4] = local_38;
    piVar4[5] = local_34;
    piVar4[6] = local_30;
    puVar5 = puVar1;
  }
  else {
    piVar4[1] = (int)local_44;
    piVar4[3] = local_3c;
    puVar5 = local_44;
  }
  piVar4[7] = (int)local_2c;
  piVar4[2] = local_40;
  piVar4[8] = local_28;
  local_40 = 0;
  piVar4[9] = local_24;
  local_3c = local_3c & 0xffffff00;
  piVar4[10] = local_20;
  local_44 = &local_3c;
  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);
  uVar2 = param_6[1];
  local_64 = uVar6 % uVar2;
  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);
  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {
    if (puVar1 != (uint *)piVar4[1]) {
      FUN_001807a0((uint *)piVar4[1]);
    }
    FUN_001807a0(piVar4);
    if (local_44 != &local_3c) {
      FUN_001807a0(local_44);
    }
    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];
    if ((__n == param_3[1]) &&
       ((__s2 = (void *)*param_3, __n == 0 ||
        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {
      if (*(char *)(iVar3 + 0x20) != param_4) {
        iVar3 = *param_2;
        uVar9 = gettext(
                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"
                       );
        FUN_0005ad00(uVar9,iVar3,__s2);
        return;
      }
    }
    else if (*(int *)(iVar3 + 0x28) == 0) {
      *(undefined4 **)(iVar3 + 0x28) = param_3;
    }
    return;
  }
  local_48 = param_6[5];
                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */
  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);
  if (local_54[0] != '\0') {
                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */
    FUN_0011c800(param_6,local_50,&local_48);
    local_64 = uVar6 % (uint)param_6[1];
  }
  piVar4[0xb] = uVar6;
  iVar3 = *param_6;
  piVar7 = (int *)(iVar3 + local_64 * 4);
  if ((int *)*piVar7 == (int *)0x0) {
    iVar8 = param_6[2];
    param_6[2] = (int)piVar4;
    *piVar4 = iVar8;
    if (iVar8 != 0) {
      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;
    }
    *piVar7 = (int)(param_6 + 2);
  }
  else {
    *piVar4 = *(int *)*piVar7;
    *(int **)*piVar7 = piVar4;
  }
  param_6[3] = param_6[3] + 1;
  if (local_44 == &local_3c) {
    return;
  }
  FUN_001807a0(local_44);
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
LEA EDX,[EBP + -0x40]
LEA EDI,[EBP + -0x38]
PUSH EBX
CALL 0x00032730
ADD EBX,0x1e807f
SUB ESP,0x5c
MOV EAX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x40],EDI
MOV EAX,dword ptr [EAX]
PUSH 0x0
MOV dword ptr [EBP + -0x68],ESI
MOV ECX,EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + -0x54],EBX
MOV dword ptr [EBP + -0x58],ECX
ADD ECX,dword ptr [EAX + 0x4]
PUSH ECX
PUSH dword ptr [EBP + -0x58]
PUSH EDX
CALL 0x0004d4e0
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EBP + -0x1c],0x0
MOV dword ptr [ESP],0x30
MOV dword ptr [EBP + -0x28],EAX
MOV EAX,ESI
MOV byte ptr [EBP + -0x24],AL
MOV EAX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + -0x20],EAX
CALL 0x0017ebf0
MOV dword ptr [EAX],0x0
MOV ESI,EAX
LEA ECX,[EAX + 0x4]
LEA EAX,[EAX + 0xc]
MOV dword ptr [EBP + -0x64],EAX
ADD ESP,0x10
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBP + -0x40]
CMP EAX,EDI
JZ 0x0011a220
MOV EDX,dword ptr [EBP + -0x38]
MOV dword ptr [ESI + 0x4],EAX
MOV dword ptr [ESI + 0xc],EDX
MOV EBX,dword ptr [EBP + -0x28]
MOV EDX,dword ptr [EBP + -0x3c]
SUB ESP,0x4
MOV dword ptr [EBP + -0x58],ECX
MOV dword ptr [EBP + -0x40],EDI
MOV dword ptr [ESI + 0x1c],EBX
MOV EBX,dword ptr [EBP + -0x24]
MOV dword ptr [ESI + 0x8],EDX
MOV dword ptr [ESI + 0x20],EBX
MOV EBX,dword ptr [EBP + -0x20]
MOV dword ptr [EBP + -0x3c],0x0
MOV dword ptr [ESI + 0x24],EBX
MOV EBX,dword ptr [EBP + -0x1c]
MOV byte ptr [EBP + -0x38],0x0
MOV dword ptr [ESI + 0x28],EBX
MOV EBX,dword ptr [EBP + -0x54]
PUSH 0xc70f6907
PUSH EDX
PUSH EAX
CALL 0x0017eca0
MOV ECX,dword ptr [EBP + 0x1c]
XOR EDX,EDX
MOV dword ptr [EBP + -0x5c],EAX
MOV EBX,dword ptr [ECX + 0x4]
MOV ECX,EAX
PUSH ECX
MOV ECX,dword ptr [EBP + -0x58]
DIV EBX
PUSH ECX
PUSH EDX
PUSH dword ptr [EBP + 0x1c]
MOV dword ptr [EBP + -0x60],EDX
CALL 0x0011c5a0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0011a0e8
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0011a0e8
MOV EAX,dword ptr [ESI + 0x4]
CMP dword ptr [EBP + -0x64],EAX
JZ 0x0011a08c
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + -0x58],EDX
PUSH EAX
CALL 0x001807a0
MOV EDX,dword ptr [EBP + -0x58]
ADD ESP,0x10
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + -0x58],EDX
PUSH ESI
CALL 0x001807a0
MOV EAX,dword ptr [EBP + -0x40]
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x58]
CMP EAX,EDI
JZ 0x0011a0bd
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + -0x58],EDX
PUSH EAX
CALL 0x001807a0
MOV EDX,dword ptr [EBP + -0x58]
ADD ESP,0x10
MOV ECX,dword ptr [EDX + 0x1c]
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [ECX + 0x4]
CMP EAX,dword ptr [EDI + 0x4]
JZ 0x0011a188
MOV EAX,dword ptr [EDX + 0x28]
TEST EAX,EAX
JNZ 0x0011a17d
MOV EAX,dword ptr [EBP + 0x10]
MOV dword ptr [EDX + 0x28],EAX
JMP 0x0011a17d
MOV EAX,dword ptr [EBP + 0x1c]
MOV ECX,dword ptr [EBP + 0x1c]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x14]
LEA EDX,[ECX + 0x10]
PUSH 0x1
PUSH dword ptr [ECX + 0xc]
MOV dword ptr [EBP + -0x44],EAX
LEA EAX,[EBP + -0x50]
PUSH EBX
MOV EBX,dword ptr [EBP + -0x54]
PUSH EDX
PUSH EAX
CALL 0x001c5e50
ADD ESP,0x1c
CMP byte ptr [EBP + -0x50],0x0
MOV EAX,dword ptr [EBP + -0x4c]
JZ 0x0011a13a
SUB ESP,0x4
LEA EDX,[EBP + -0x44]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0x1c]
CALL 0x0011c800
MOV ECX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [EBP + -0x5c]
XOR EDX,EDX
ADD ESP,0x10
DIV dword ptr [ECX + 0x4]
MOV dword ptr [EBP + -0x60],EDX
MOV EAX,dword ptr [EBP + -0x5c]
MOV dword ptr [ESI + 0x2c],EAX
MOV EAX,dword ptr [EBP + 0x1c]
MOV EBX,dword ptr [EAX]
MOV EAX,dword ptr [EBP + -0x60]
LEA ECX,[EBX + EAX*0x4]
MOV dword ptr [EBP + -0x58],EBX
MOV EAX,dword ptr [ECX]
TEST EAX,EAX
JZ 0x0011a1f0
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ECX]
MOV dword ptr [EAX],ESI
MOV EAX,dword ptr [EBP + 0x1c]
ADD dword ptr [EAX + 0xc],0x1
MOV EAX,dword ptr [EBP + -0x40]
CMP EAX,EDI
JZ 0x0011a17d
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
PUSH EAX
CALL 0x001807a0
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ESI,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0011a1ae
SUB ESP,0x4
MOV EBX,dword ptr [EBP + -0x54]
MOV dword ptr [EBP + -0x58],EDX
PUSH EAX
PUSH ESI
PUSH dword ptr [ECX]
CALL 0x00026130
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x58]
TEST EAX,EAX
JNZ 0x0011a0cf
MOVZX EAX,byte ptr [EBP + -0x68]
CMP byte ptr [EDX + 0x20],AL
JZ 0x0011a17d
MOV ECX,dword ptr [EBP + -0x54]
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EDI,dword ptr [EAX]
LEA EAX,[ECX + 0xfff2e534]
MOV EBX,ECX
PUSH EAX
CALL 0x000263b0
ADD ESP,0xc
MOV EBX,dword ptr [EBP + -0x54]
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x0005ad00
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x1c]
MOV EDX,dword ptr [EBP + 0x1c]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EDX + 0x8],ESI
MOV dword ptr [ESI],EAX
TEST EAX,EAX
JZ 0x0011a212
MOV EAX,dword ptr [EAX + 0x2c]
MOV EBX,EDX
XOR EDX,EDX
DIV dword ptr [EBX + 0x4]
MOV EAX,dword ptr [EBP + -0x58]
MOV dword ptr [EAX + EDX*0x4],ESI
MOV EAX,dword ptr [EBP + 0x1c]
ADD EAX,0x8
MOV dword ptr [ECX],EAX
JMP 0x0011a160
MOV EAX,dword ptr [EDI]
MOV EDX,dword ptr [EBP + -0x64]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [EDX + 0x4],EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [EDX + 0x8],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EDX + 0xc],EAX
MOV EAX,EDX
JMP 0x0011a001
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */\n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */\n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}\n\n" comment (function_definition "void FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */\n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */\n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}" primitive_type (function_declarator "FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */\n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */\n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "char local_54 [4];" primitive_type (array_declarator "local_54 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x119f81;" (assignment_expression "uStack_14 = 0x119f81" identifier = number_literal) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);" (call_expression "FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0)" identifier (argument_list "(&local_44,*param_2,*param_2 + param_2[1],0)" ( (pointer_expression "&local_44" & identifier) , (pointer_expression "*param_2" * identifier) , (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" * identifier) + (subscript_expression "param_2[1]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_2c = param_3;" (assignment_expression "local_2c = param_3" identifier = identifier) ;) (expression_statement "local_28 = CONCAT31(local_28._1_3_,param_4);" (assignment_expression "local_28 = CONCAT31(local_28._1_3_,param_4)" identifier = (call_expression "CONCAT31(local_28._1_3_,param_4)" identifier (argument_list "(local_28._1_3_,param_4)" ( (field_expression "local_28._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_24 = param_5;" (assignment_expression "local_24 = param_5" identifier = identifier) ;) comment (expression_statement "piVar4 = (int *)FUN_0017ebf0(0x30);" (assignment_expression "piVar4 = (int *)FUN_0017ebf0(0x30)" identifier = (cast_expression "(int *)FUN_0017ebf0(0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "iVar3 = local_40;" (assignment_expression "iVar3 = local_40" identifier = identifier) ;) (expression_statement "*piVar4 = 0;" (assignment_expression "*piVar4 = 0" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (expression_statement "puVar1 = (uint *)(piVar4 + 3);" (assignment_expression "puVar1 = (uint *)(piVar4 + 3)" identifier = (cast_expression "(uint *)(piVar4 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 3)" ( (binary_expression "piVar4 + 3" identifier + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)puVar1;" (assignment_expression "piVar4[1] = (int)puVar1" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }" { (expression_statement "piVar4[3] = local_3c;" (assignment_expression "piVar4[3] = local_3c" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_38;" (assignment_expression "piVar4[4] = local_38" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[5] = local_34;" (assignment_expression "piVar4[5] = local_34" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[6] = local_30;" (assignment_expression "piVar4[6] = local_30" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar1;" (assignment_expression "puVar5 = puVar1" identifier = identifier) ;) }) (else_clause "else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" else (compound_statement "{\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" { (expression_statement "piVar4[1] = (int)local_44;" (assignment_expression "piVar4[1] = (int)local_44" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[3] = local_3c;" (assignment_expression "piVar4[3] = local_3c" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = local_44;" (assignment_expression "puVar5 = local_44" identifier = identifier) ;) }))) (expression_statement "piVar4[7] = (int)local_2c;" (assignment_expression "piVar4[7] = (int)local_2c" (subscript_expression "piVar4[7]" identifier [ number_literal ]) = (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[2] = local_40;" (assignment_expression "piVar4[2] = local_40" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[8] = local_28;" (assignment_expression "piVar4[8] = local_28" (subscript_expression "piVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "piVar4[9] = local_24;" (assignment_expression "piVar4[9] = local_24" (subscript_expression "piVar4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_3c = local_3c & 0xffffff00;" (assignment_expression "local_3c = local_3c & 0xffffff00" identifier = (binary_expression "local_3c & 0xffffff00" identifier & number_literal)) ;) (expression_statement "piVar4[10] = local_20;" (assignment_expression "piVar4[10] = local_20" (subscript_expression "piVar4[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);" (assignment_expression "uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907)" identifier = (call_expression "FUN_0017eca0(puVar5,iVar3,0xc70f6907)" identifier (argument_list "(puVar5,iVar3,0xc70f6907)" ( identifier , identifier , number_literal )))) ;) (expression_statement "uVar2 = param_6[1];" (assignment_expression "uVar2 = param_6[1]" identifier = (subscript_expression "param_6[1]" identifier [ number_literal ])) ;) (expression_statement "local_64 = uVar6 % uVar2;" (assignment_expression "local_64 = uVar6 % uVar2" identifier = (binary_expression "uVar6 % uVar2" identifier % identifier)) ;) (expression_statement "piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);" (assignment_expression "piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" identifier = (cast_expression "(int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" identifier (argument_list "(param_6,local_64,piVar4 + 1,uVar6)" ( identifier , identifier , (binary_expression "piVar4 + 1" identifier + number_literal) , identifier ))))) ;) (if_statement "if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }" if (parenthesized_expression "((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0))" ( (binary_expression "(piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)" (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 = *piVar7, iVar3 != 0)" ( (comma_expression "iVar3 = *piVar7, iVar3 != 0" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }" { (if_statement "if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }" if (parenthesized_expression "(puVar1 != (uint *)piVar4[1])" ( (binary_expression "puVar1 != (uint *)piVar4[1]" identifier != (cast_expression "(uint *)piVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      FUN_001807a0((uint *)piVar4[1]);\n    }" { (expression_statement "FUN_001807a0((uint *)piVar4[1]);" (call_expression "FUN_001807a0((uint *)piVar4[1])" identifier (argument_list "((uint *)piVar4[1])" ( (cast_expression "(uint *)piVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ])) ))) ;) })) (expression_statement "FUN_001807a0(piVar4);" (call_expression "FUN_001807a0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (if_statement "if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n      FUN_001807a0(local_44);\n    }" { (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) (expression_statement "__n = (*(undefined4 **)(iVar3 + 0x1c))[1];" (assignment_expression "__n = (*(undefined4 **)(iVar3 + 0x1c))[1]" identifier = (subscript_expression "(*(undefined4 **)(iVar3 + 0x1c))[1]" (parenthesized_expression "(*(undefined4 **)(iVar3 + 0x1c))" ( (pointer_expression "*(undefined4 **)(iVar3 + 0x1c)" * (cast_expression "(undefined4 **)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) )) [ number_literal ])) ;) (if_statement "if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" if (parenthesized_expression "((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0))))" ( (binary_expression "(__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))" (parenthesized_expression "(__n == param_3[1])" ( (binary_expression "__n == param_3[1]" identifier == (subscript_expression "param_3[1]" identifier [ number_literal ])) )) && (parenthesized_expression "((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))" ( (parenthesized_expression "(__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0))" ( (comma_expression "__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (assignment_expression "__s2 = (void *)*param_3" identifier = (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) , (binary_expression "__n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (binary_expression "__n == 0" identifier == number_literal) || (parenthesized_expression "(iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" ( (comma_expression "iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0" (assignment_expression "iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" identifier = (call_expression "memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" identifier (argument_list "((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" ( (cast_expression "(void *)**(undefined4 **)(iVar3 + 0x1c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar3 + 0x1c)" * (pointer_expression "*(undefined4 **)(iVar3 + 0x1c)" * (cast_expression "(undefined4 **)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))))) , identifier , identifier )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }" { (if_statement "if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0x20) != param_4)" ( (binary_expression "*(char *)(iVar3 + 0x20) != param_4" (pointer_expression "*(char *)(iVar3 + 0x20)" * (cast_expression "(char *)(iVar3 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }" { (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );" (assignment_expression "uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" identifier = (call_expression "gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" identifier (argument_list "(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" ( (string_literal ""\'%s\' appears as both a global and a local symbol for version \'%s\' in script"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0005ad00(uVar9,iVar3,__s2);" (call_expression "FUN_0005ad00(uVar9,iVar3,__s2)" identifier (argument_list "(uVar9,iVar3,__s2)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" else (if_statement "if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x28) == 0" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" { (expression_statement "*(undefined4 **)(iVar3 + 0x28) = param_3;" (assignment_expression "*(undefined4 **)(iVar3 + 0x28) = param_3" (pointer_expression "*(undefined4 **)(iVar3 + 0x28)" * (cast_expression "(undefined4 **)(iVar3 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) = identifier) ;) })))) (return_statement "return;" return ;) })) (expression_statement "local_48 = param_6[5];" (assignment_expression "local_48 = param_6[5]" identifier = (subscript_expression "param_6[5]" identifier [ number_literal ])) ;) comment (expression_statement "FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);" (call_expression "FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1)" identifier (argument_list "(local_54,param_6 + 4,uVar2,param_6[3],1)" ( identifier , (binary_expression "param_6 + 4" identifier + number_literal) , identifier , (subscript_expression "param_6[3]" identifier [ number_literal ]) , number_literal ))) ;) (if_statement "if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }" if (parenthesized_expression "(local_54[0] != '\0')" ( (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }" { comment (expression_statement "FUN_0011c800(param_6,local_50,&local_48);" (call_expression "FUN_0011c800(param_6,local_50,&local_48)" identifier (argument_list "(param_6,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "local_64 = uVar6 % (uint)param_6[1];" (assignment_expression "local_64 = uVar6 % (uint)param_6[1]" identifier = (binary_expression "uVar6 % (uint)param_6[1]" identifier % (cast_expression "(uint)param_6[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[1]" identifier [ number_literal ])))) ;) })) (expression_statement "piVar4[0xb] = uVar6;" (assignment_expression "piVar4[0xb] = uVar6" (subscript_expression "piVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "piVar7 = (int *)(iVar3 + local_64 * 4);" (assignment_expression "piVar7 = (int *)(iVar3 + local_64 * 4)" identifier = (cast_expression "(int *)(iVar3 + local_64 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + local_64 * 4)" ( (binary_expression "iVar3 + local_64 * 4" identifier + (binary_expression "local_64 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" if (parenthesized_expression "((int *)*piVar7 == (int *)0x0)" ( (binary_expression "(int *)*piVar7 == (int *)0x0" (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }" { (expression_statement "iVar8 = param_6[2];" (assignment_expression "iVar8 = param_6[2]" identifier = (subscript_expression "param_6[2]" identifier [ number_literal ])) ;) (expression_statement "param_6[2] = (int)piVar4;" (assignment_expression "param_6[2] = (int)piVar4" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar4 = iVar8;" (assignment_expression "*piVar4 = iVar8" (pointer_expression "*piVar4" * identifier) = identifier) ;) (if_statement "if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }" { (expression_statement "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;" (assignment_expression "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4" (pointer_expression "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" * (cast_expression "(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" ( (binary_expression "iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4" identifier + (binary_expression "(*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4" (parenthesized_expression "(*(uint *)(iVar8 + 0x2c) % (uint)param_6[1])" ( (binary_expression "*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]" (pointer_expression "*(uint *)(iVar8 + 0x2c)" * (cast_expression "(uint *)(iVar8 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c)" ( (binary_expression "iVar8 + 0x2c" identifier + number_literal) )))) % (cast_expression "(uint)param_6[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[1]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) })) (expression_statement "*piVar7 = (int)(param_6 + 2);" (assignment_expression "*piVar7 = (int)(param_6 + 2)" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)(param_6 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" else (compound_statement "{\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" { (expression_statement "*piVar4 = *(int *)*piVar7;" (assignment_expression "*piVar4 = *(int *)*piVar7" (pointer_expression "*piVar4" * identifier) = (pointer_expression "*(int *)*piVar7" * (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier)))) ;) (expression_statement "*(int **)*piVar7 = piVar4;" (assignment_expression "*(int **)*piVar7 = piVar4" (pointer_expression "*(int **)*piVar7" * (cast_expression "(int **)*piVar7" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*piVar7" * identifier))) = identifier) ;) }))) (expression_statement "param_6[3] = param_6[3] + 1;" (assignment_expression "param_6[3] = param_6[3] + 1" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (binary_expression "param_6[3] + 1" (subscript_expression "param_6[3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (local_44 == &local_3c) {\n    return;\n  }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: void add_exact_match(Version_script_info * this, string * match,\n   Version_tree * v, bool is_global, Version_expression * ve, Exact * pe) */\n\nvoid __thiscall\ngold::Version_script_info::add_exact_match\n          (Version_script_info *this,string *match,Version_tree *v,bool is_global,\n          Version_expression *ve,Exact *pe)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  size_type *psVar3;\n  __bucket_type *pp_Var4;\n  pointer pcVar5;\n  uint uVar6;\n  _Hash_node_base *p_Var7;\n  __bucket_type *pp_Var8;\n  pointer pcVar9;\n  size_type sVar10;\n  _Hash_node_base *p_Var11;\n  _Alloc_hider _Var12;\n  _Hash_node_base *p_Var13;\n  __node_base *p_Var14;\n  int iVar15;\n  char *format;\n  uint local_64;\n  char local_54 [4];\n  size_type local_50;\n  size_t local_48;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_44;\n  Version_tree *local_2c;\n  _Hash_node_base *local_28;\n  Version_expression *local_24;\n  _Hash_node_base *local_20;\n  undefined4 uStack_14;\n  \n  paVar1 = &local_44.field_2;\n  uStack_14 = 0x119f81;\n  pcVar5 = (match->_M_dataplus)._M_p;\n  local_44._M_dataplus._M_p = (pointer)paVar1;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0);\n  local_20 = (_Hash_node_base *)0x0;\n  local_2c = v;\n  local_28 = (_Hash_node_base *)CONCAT31(local_28._1_3_,is_global);\n  local_24 = ve;\n                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */\n  p_Var11 = (_Hash_node_base *)operator_new(0x30);\n  sVar10 = local_44._M_string_length;\n  p_Var11->_M_nxt = (_Hash_node_base *)0x0;\n  paVar2 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)(p_Var11 + 3);\n  p_Var11[1]._M_nxt = (_Hash_node_base *)paVar2;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;\n    p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;\n    p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;\n    _Var12._M_p = (pointer)paVar2;\n  }\n  else {\n    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    _Var12._M_p = local_44._M_dataplus._M_p;\n  }\n  p_Var11[7]._M_nxt = (_Hash_node_base *)local_2c;\n  p_Var11[2]._M_nxt = (_Hash_node_base *)local_44._M_string_length;\n  p_Var11[8]._M_nxt = local_28;\n  local_44._M_string_length = 0;\n  p_Var11[9]._M_nxt = (_Hash_node_base *)local_24;\n  local_44.field_2._M_allocated_capacity = local_44.field_2._M_allocated_capacity & 0xffffff00;\n  p_Var11[10]._M_nxt = local_20;\n  local_44._M_dataplus._M_p = (pointer)paVar1;\n  p_Var13 = (_Hash_node_base *)std::_Hash_bytes(_Var12._M_p,sVar10,0xc70f6907);\n  uVar6 = (pe->_M_h)._M_bucket_count;\n  local_64 = (uint)p_Var13 % uVar6;\n  p_Var14 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);\n  if ((p_Var14 != (__node_base *)0x0) &&\n     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)) {\n    if (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt) {\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }\n    operator_delete(p_Var11);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1) {\n      operator_delete(local_44._M_dataplus._M_p);\n    }\n    p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;\n    if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }\n    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }\n    return;\n  }\n  local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize;\n                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */\n  std::__detail::_Prime_rehash_policy::_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);\n  if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);\n    local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;\n  }\n  p_Var11[0xb]._M_nxt = p_Var13;\n  pp_Var8 = (pe->_M_h)._M_buckets;\n  pp_Var4 = pp_Var8 + local_64;\n  if (*pp_Var4 == (__bucket_type)0x0) {\n    p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;\n    (pe->_M_h)._M_before_begin._M_nxt = p_Var11;\n    p_Var11->_M_nxt = p_Var13;\n    if (p_Var13 != (_Hash_node_base *)0x0) {\n      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }\n    *pp_Var4 = &(pe->_M_h)._M_before_begin;\n  }\n  else {\n    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;\n    (*pp_Var4)->_M_nxt = p_Var11;\n  }\n  psVar3 = &(pe->_M_h)._M_element_count;\n  *psVar3 = *psVar3 + 1;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    return;\n  }\n  operator_delete(local_44._M_dataplus._M_p);\n  return;\n}\n\n" comment comment (function_definition "void __thiscall\ngold::Version_script_info::add_exact_match\n          (Version_script_info *this,string *match,Version_tree *v,bool is_global,\n          Version_expression *ve,Exact *pe)\n\n{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  size_type *psVar3;\n  __bucket_type *pp_Var4;\n  pointer pcVar5;\n  uint uVar6;\n  _Hash_node_base *p_Var7;\n  __bucket_type *pp_Var8;\n  pointer pcVar9;\n  size_type sVar10;\n  _Hash_node_base *p_Var11;\n  _Alloc_hider _Var12;\n  _Hash_node_base *p_Var13;\n  __node_base *p_Var14;\n  int iVar15;\n  char *format;\n  uint local_64;\n  char local_54 [4];\n  size_type local_50;\n  size_t local_48;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_44;\n  Version_tree *local_2c;\n  _Hash_node_base *local_28;\n  Version_expression *local_24;\n  _Hash_node_base *local_20;\n  undefined4 uStack_14;\n  \n  paVar1 = &local_44.field_2;\n  uStack_14 = 0x119f81;\n  pcVar5 = (match->_M_dataplus)._M_p;\n  local_44._M_dataplus._M_p = (pointer)paVar1;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0);\n  local_20 = (_Hash_node_base *)0x0;\n  local_2c = v;\n  local_28 = (_Hash_node_base *)CONCAT31(local_28._1_3_,is_global);\n  local_24 = ve;\n                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */\n  p_Var11 = (_Hash_node_base *)operator_new(0x30);\n  sVar10 = local_44._M_string_length;\n  p_Var11->_M_nxt = (_Hash_node_base *)0x0;\n  paVar2 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)(p_Var11 + 3);\n  p_Var11[1]._M_nxt = (_Hash_node_base *)paVar2;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;\n    p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;\n    p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;\n    _Var12._M_p = (pointer)paVar2;\n  }\n  else {\n    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    _Var12._M_p = local_44._M_dataplus._M_p;\n  }\n  p_Var11[7]._M_nxt = (_Hash_node_base *)local_2c;\n  p_Var11[2]._M_nxt = (_Hash_node_base *)local_44._M_string_length;\n  p_Var11[8]._M_nxt = local_28;\n  local_44._M_string_length = 0;\n  p_Var11[9]._M_nxt = (_Hash_node_base *)local_24;\n  local_44.field_2._M_allocated_capacity = local_44.field_2._M_allocated_capacity & 0xffffff00;\n  p_Var11[10]._M_nxt = local_20;\n  local_44._M_dataplus._M_p = (pointer)paVar1;\n  p_Var13 = (_Hash_node_base *)std::_Hash_bytes(_Var12._M_p,sVar10,0xc70f6907);\n  uVar6 = (pe->_M_h)._M_bucket_count;\n  local_64 = (uint)p_Var13 % uVar6;\n  p_Var14 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);\n  if ((p_Var14 != (__node_base *)0x0) &&\n     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)) {\n    if (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt) {\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }\n    operator_delete(p_Var11);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1) {\n      operator_delete(local_44._M_dataplus._M_p);\n    }\n    p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;\n    if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }\n    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }\n    return;\n  }\n  local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize;\n                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */\n  std::__detail::_Prime_rehash_policy::_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);\n  if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);\n    local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;\n  }\n  p_Var11[0xb]._M_nxt = p_Var13;\n  pp_Var8 = (pe->_M_h)._M_buckets;\n  pp_Var4 = pp_Var8 + local_64;\n  if (*pp_Var4 == (__bucket_type)0x0) {\n    p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;\n    (pe->_M_h)._M_before_begin._M_nxt = p_Var11;\n    p_Var11->_M_nxt = p_Var13;\n    if (p_Var13 != (_Hash_node_base *)0x0) {\n      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }\n    *pp_Var4 = &(pe->_M_h)._M_before_begin;\n  }\n  else {\n    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;\n    (*pp_Var4)->_M_nxt = p_Var11;\n  }\n  psVar3 = &(pe->_M_h)._M_element_count;\n  *psVar3 = *psVar3 + 1;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    return;\n  }\n  operator_delete(local_44._M_dataplus._M_p);\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Version_script_info::" identifier : : identifier : :) (function_declarator "add_exact_match\n          (Version_script_info *this,string *match,Version_tree *v,bool is_global,\n          Version_expression *ve,Exact *pe)" identifier (parameter_list "(Version_script_info *this,string *match,Version_tree *v,bool is_global,\n          Version_expression *ve,Exact *pe)" ( (parameter_declaration "Version_script_info *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "string *match" type_identifier (pointer_declarator "*match" * identifier)) , (parameter_declaration "Version_tree *v" type_identifier (pointer_declarator "*v" * identifier)) , (parameter_declaration "bool is_global" primitive_type identifier) , (parameter_declaration "Version_expression *ve" type_identifier (pointer_declarator "*ve" * identifier)) , (parameter_declaration "Exact *pe" type_identifier (pointer_declarator "*pe" * identifier)) ))) (compound_statement "{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  size_type *psVar3;\n  __bucket_type *pp_Var4;\n  pointer pcVar5;\n  uint uVar6;\n  _Hash_node_base *p_Var7;\n  __bucket_type *pp_Var8;\n  pointer pcVar9;\n  size_type sVar10;\n  _Hash_node_base *p_Var11;\n  _Alloc_hider _Var12;\n  _Hash_node_base *p_Var13;\n  __node_base *p_Var14;\n  int iVar15;\n  char *format;\n  uint local_64;\n  char local_54 [4];\n  size_type local_50;\n  size_t local_48;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_44;\n  Version_tree *local_2c;\n  _Hash_node_base *local_28;\n  Version_expression *local_24;\n  _Hash_node_base *local_20;\n  undefined4 uStack_14;\n  \n  paVar1 = &local_44.field_2;\n  uStack_14 = 0x119f81;\n  pcVar5 = (match->_M_dataplus)._M_p;\n  local_44._M_dataplus._M_p = (pointer)paVar1;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0);\n  local_20 = (_Hash_node_base *)0x0;\n  local_2c = v;\n  local_28 = (_Hash_node_base *)CONCAT31(local_28._1_3_,is_global);\n  local_24 = ve;\n                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */\n  p_Var11 = (_Hash_node_base *)operator_new(0x30);\n  sVar10 = local_44._M_string_length;\n  p_Var11->_M_nxt = (_Hash_node_base *)0x0;\n  paVar2 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)(p_Var11 + 3);\n  p_Var11[1]._M_nxt = (_Hash_node_base *)paVar2;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;\n    p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;\n    p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;\n    _Var12._M_p = (pointer)paVar2;\n  }\n  else {\n    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    _Var12._M_p = local_44._M_dataplus._M_p;\n  }\n  p_Var11[7]._M_nxt = (_Hash_node_base *)local_2c;\n  p_Var11[2]._M_nxt = (_Hash_node_base *)local_44._M_string_length;\n  p_Var11[8]._M_nxt = local_28;\n  local_44._M_string_length = 0;\n  p_Var11[9]._M_nxt = (_Hash_node_base *)local_24;\n  local_44.field_2._M_allocated_capacity = local_44.field_2._M_allocated_capacity & 0xffffff00;\n  p_Var11[10]._M_nxt = local_20;\n  local_44._M_dataplus._M_p = (pointer)paVar1;\n  p_Var13 = (_Hash_node_base *)std::_Hash_bytes(_Var12._M_p,sVar10,0xc70f6907);\n  uVar6 = (pe->_M_h)._M_bucket_count;\n  local_64 = (uint)p_Var13 % uVar6;\n  p_Var14 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);\n  if ((p_Var14 != (__node_base *)0x0) &&\n     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)) {\n    if (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt) {\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }\n    operator_delete(p_Var11);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1) {\n      operator_delete(local_44._M_dataplus._M_p);\n    }\n    p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;\n    if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }\n    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }\n    return;\n  }\n  local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize;\n                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */\n  std::__detail::_Prime_rehash_policy::_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);\n  if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);\n    local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;\n  }\n  p_Var11[0xb]._M_nxt = p_Var13;\n  pp_Var8 = (pe->_M_h)._M_buckets;\n  pp_Var4 = pp_Var8 + local_64;\n  if (*pp_Var4 == (__bucket_type)0x0) {\n    p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;\n    (pe->_M_h)._M_before_begin._M_nxt = p_Var11;\n    p_Var11->_M_nxt = p_Var13;\n    if (p_Var13 != (_Hash_node_base *)0x0) {\n      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }\n    *pp_Var4 = &(pe->_M_h)._M_before_begin;\n  }\n  else {\n    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;\n    (*pp_Var4)->_M_nxt = p_Var11;\n  }\n  psVar3 = &(pe->_M_h)._M_element_count;\n  *psVar3 = *psVar3 + 1;\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    return;\n  }\n  operator_delete(local_44._M_dataplus._M_p);\n  return;\n}" { (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar2;" (binary_expression "allocator<char>_>_9\n  *paVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar2" identifier * identifier)) ;) (declaration "size_type *psVar3;" type_identifier (pointer_declarator "*psVar3" * identifier) ;) (declaration "__bucket_type *pp_Var4;" type_identifier (pointer_declarator "*pp_Var4" * identifier) ;) (declaration "pointer pcVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (declaration "__bucket_type *pp_Var8;" type_identifier (pointer_declarator "*pp_Var8" * identifier) ;) (declaration "pointer pcVar9;" type_identifier identifier ;) (declaration "size_type sVar10;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "_Alloc_hider _Var12;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var13;" type_identifier (pointer_declarator "*p_Var13" * identifier) ;) (declaration "__node_base *p_Var14;" type_identifier (pointer_declarator "*p_Var14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "char local_54 [4];" primitive_type (array_declarator "local_54 [4]" identifier [ number_literal ]) ;) (declaration "size_type local_50;" type_identifier identifier ;) (declaration "size_t local_48;" primitive_type identifier ;) (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_> local_44;" (binary_expression "allocator<char>_> local_44" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;) (declaration "Version_tree *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "_Hash_node_base *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "Version_expression *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "_Hash_node_base *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "paVar1 = &local_44.field_2;" (assignment_expression "paVar1 = &local_44.field_2" identifier = (pointer_expression "&local_44.field_2" & (field_expression "local_44.field_2" identifier . field_identifier))) ;) (expression_statement "uStack_14 = 0x119f81;" (assignment_expression "uStack_14 = 0x119f81" identifier = number_literal) ;) (expression_statement "pcVar5 = (match->_M_dataplus)._M_p;" (assignment_expression "pcVar5 = (match->_M_dataplus)._M_p" identifier = (field_expression "(match->_M_dataplus)._M_p" (parenthesized_expression "(match->_M_dataplus)" ( (field_expression "match->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_44._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "local_44._M_dataplus._M_p = (pointer)paVar1" (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0);" (binary_expression "_M_construct<char*>(&local_44,pcVar5,pcVar5 + match->_M_string_length,0)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_44,pcVar5,pcVar5 + match->_M_string_length,0)" ( (comma_expression "&local_44,pcVar5,pcVar5 + match->_M_string_length,0" (pointer_expression "&local_44" & identifier) , (comma_expression "pcVar5,pcVar5 + match->_M_string_length,0" identifier , (comma_expression "pcVar5 + match->_M_string_length,0" (binary_expression "pcVar5 + match->_M_string_length" identifier + (field_expression "match->_M_string_length" identifier -> field_identifier)) , number_literal))) ))) ;)) (expression_statement "local_20 = (_Hash_node_base *)0x0;" (assignment_expression "local_20 = (_Hash_node_base *)0x0" identifier = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = v;" (assignment_expression "local_2c = v" identifier = identifier) ;) (expression_statement "local_28 = (_Hash_node_base *)CONCAT31(local_28._1_3_,is_global);" (assignment_expression "local_28 = (_Hash_node_base *)CONCAT31(local_28._1_3_,is_global)" identifier = (cast_expression "(_Hash_node_base *)CONCAT31(local_28._1_3_,is_global)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_28._1_3_,is_global)" identifier (argument_list "(local_28._1_3_,is_global)" ( (field_expression "local_28._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "local_24 = ve;" (assignment_expression "local_24 = ve" identifier = identifier) ;) comment (expression_statement "p_Var11 = (_Hash_node_base *)operator_new(0x30);" (assignment_expression "p_Var11 = (_Hash_node_base *)operator_new(0x30)" identifier = (cast_expression "(_Hash_node_base *)operator_new(0x30)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "sVar10 = local_44._M_string_length;" (assignment_expression "sVar10 = local_44._M_string_length" identifier = (field_expression "local_44._M_string_length" identifier . field_identifier)) ;) (expression_statement "p_Var11->_M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var11->_M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "paVar2 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)(p_Var11 + 3);" (assignment_expression "paVar2 = (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)(p_Var11 + 3)" identifier = (call_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)(p_Var11 + 3)" (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n            *)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) (ERROR "*" *) )) (argument_list "(p_Var11 + 3)" ( (binary_expression "p_Var11 + 3" identifier + number_literal) )))) ;) (expression_statement "p_Var11[1]._M_nxt = (_Hash_node_base *)paVar2;" (assignment_expression "p_Var11[1]._M_nxt = (_Hash_node_base *)paVar2" (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)paVar2" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;\n    p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;\n    p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;\n    _Var12._M_p = (pointer)paVar2;\n  }\n  else {\n    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    _Var12._M_p = local_44._M_dataplus._M_p;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1" (binary_expression "allocator<char>_>_9\n       *)local_44._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)local_44._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;\n    p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;\n    p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;\n    _Var12._M_p = (pointer)paVar2;\n  }" { (expression_statement "p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;" (assignment_expression "p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity" (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44.field_2._M_allocated_capacity" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44.field_2._M_allocated_capacity" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier))) ;) (expression_statement "p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_;" (assignment_expression "p_Var11[4]._M_nxt = (_Hash_node_base *)local_44.field_2._4_4_" (field_expression "p_Var11[4]._M_nxt" (subscript_expression "p_Var11[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44.field_2._4_4_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44.field_2._4_4_" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier))) ;) (expression_statement "p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_;" (assignment_expression "p_Var11[5]._M_nxt = (_Hash_node_base *)local_44.field_2._8_4_" (field_expression "p_Var11[5]._M_nxt" (subscript_expression "p_Var11[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44.field_2._8_4_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44.field_2._8_4_" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier))) ;) (expression_statement "p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_;" (assignment_expression "p_Var11[6]._M_nxt = (_Hash_node_base *)local_44.field_2._12_4_" (field_expression "p_Var11[6]._M_nxt" (subscript_expression "p_Var11[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44.field_2._12_4_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44.field_2._12_4_" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier))) ;) (expression_statement "_Var12._M_p = (pointer)paVar2;" (assignment_expression "_Var12._M_p = (pointer)paVar2" (field_expression "_Var12._M_p" identifier . field_identifier) = (cast_expression "(pointer)paVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    _Var12._M_p = local_44._M_dataplus._M_p;\n  }" else (compound_statement "{\n    p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;\n    p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;\n    _Var12._M_p = local_44._M_dataplus._M_p;\n  }" { (expression_statement "p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p;" (assignment_expression "p_Var11[1]._M_nxt = (_Hash_node_base *)local_44._M_dataplus._M_p" (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44._M_dataplus._M_p" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier))) ;) (expression_statement "p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity;" (assignment_expression "p_Var11[3]._M_nxt = (_Hash_node_base *)local_44.field_2._M_allocated_capacity" (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44.field_2._M_allocated_capacity" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44.field_2._M_allocated_capacity" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier))) ;) (expression_statement "_Var12._M_p = local_44._M_dataplus._M_p;" (assignment_expression "_Var12._M_p = local_44._M_dataplus._M_p" (field_expression "_Var12._M_p" identifier . field_identifier) = (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier)) ;) }))) (expression_statement "p_Var11[7]._M_nxt = (_Hash_node_base *)local_2c;" (assignment_expression "p_Var11[7]._M_nxt = (_Hash_node_base *)local_2c" (field_expression "p_Var11[7]._M_nxt" (subscript_expression "p_Var11[7]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_2c" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var11[2]._M_nxt = (_Hash_node_base *)local_44._M_string_length;" (assignment_expression "p_Var11[2]._M_nxt = (_Hash_node_base *)local_44._M_string_length" (field_expression "p_Var11[2]._M_nxt" (subscript_expression "p_Var11[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_44._M_string_length" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44._M_string_length" identifier . field_identifier))) ;) (expression_statement "p_Var11[8]._M_nxt = local_28;" (assignment_expression "p_Var11[8]._M_nxt = local_28" (field_expression "p_Var11[8]._M_nxt" (subscript_expression "p_Var11[8]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_44._M_string_length = 0;" (assignment_expression "local_44._M_string_length = 0" (field_expression "local_44._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "p_Var11[9]._M_nxt = (_Hash_node_base *)local_24;" (assignment_expression "p_Var11[9]._M_nxt = (_Hash_node_base *)local_24" (field_expression "p_Var11[9]._M_nxt" (subscript_expression "p_Var11[9]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_24" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_44.field_2._M_allocated_capacity = local_44.field_2._M_allocated_capacity & 0xffffff00;" (assignment_expression "local_44.field_2._M_allocated_capacity = local_44.field_2._M_allocated_capacity & 0xffffff00" (field_expression "local_44.field_2._M_allocated_capacity" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier) = (binary_expression "local_44.field_2._M_allocated_capacity & 0xffffff00" (field_expression "local_44.field_2._M_allocated_capacity" (field_expression "local_44.field_2" identifier . field_identifier) . field_identifier) & number_literal)) ;) (expression_statement "p_Var11[10]._M_nxt = local_20;" (assignment_expression "p_Var11[10]._M_nxt = local_20" (field_expression "p_Var11[10]._M_nxt" (subscript_expression "p_Var11[10]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_44._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "local_44._M_dataplus._M_p = (pointer)paVar1" (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (ERROR "p_Var13 = (_Hash_node_base *)std::" (assignment_expression "p_Var13 = (_Hash_node_base *)std" identifier = (cast_expression "(_Hash_node_base *)std" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "_Hash_bytes(_Var12._M_p,sVar10,0xc70f6907);" (call_expression "_Hash_bytes(_Var12._M_p,sVar10,0xc70f6907)" identifier (argument_list "(_Var12._M_p,sVar10,0xc70f6907)" ( (field_expression "_Var12._M_p" identifier . field_identifier) , identifier , number_literal ))) ;) (expression_statement "uVar6 = (pe->_M_h)._M_bucket_count;" (assignment_expression "uVar6 = (pe->_M_h)._M_bucket_count" identifier = (field_expression "(pe->_M_h)._M_bucket_count" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_64 = (uint)p_Var13 % uVar6;" (assignment_expression "local_64 = (uint)p_Var13 % uVar6" identifier = (binary_expression "(uint)p_Var13 % uVar6" (cast_expression "(uint)p_Var13" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier)) ;) (ERROR "p_Var14 = std::\n            _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (assignment_expression "p_Var14 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Version_script_info::Version_tree_match>,_std" identifier (ERROR "::Version_tree_match>" : : identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Version_script_info::Version_tree_match>_>,_std" identifier (ERROR "::Version_tree_match>_>" : : (binary_expression "Version_tree_match>_" identifier > identifier) >) , identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) 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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);" 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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);" 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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);" 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<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>_>\n            ::_M_find_before_node\n                      ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13);" (comma_expression "_Hashtable_traits<true,_false,_true>_>\n            ::_M_find_before_node\n                      ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n            ::_M_find_before_node\n                      ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13)" identifier , (binary_expression "_true>_>\n            ::_M_find_before_node\n                      ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_find_before_node\n                      ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13)" ( (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (binary_expression "Version_tree_match>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (binary_expression "Version_tree_match>_>,_std" (binary_expression "Version_tree_match>_" identifier > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13" identifier , (comma_expression "_true>_>\n                        *)pe,local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13" (binary_expression "_true>_>\n                        *)pe" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)pe" * (ERROR ")" )) identifier)) , (comma_expression "local_64,(key_type *)(p_Var11 + 1),(__hash_code)p_Var13" identifier , (comma_expression "(key_type *)(p_Var11 + 1),(__hash_code)p_Var13" (cast_expression "(key_type *)(p_Var11 + 1)" ( (type_descriptor "key_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var11 + 1)" ( (binary_expression "p_Var11 + 1" identifier + number_literal) ))) , (cast_expression "(__hash_code)p_Var13" ( (type_descriptor "__hash_code" type_identifier) ) identifier)))))) )) )))))) ;))))) (if_statement "if ((p_Var14 != (__node_base *)0x0) &&\n     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)) {\n    if (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt) {\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }\n    operator_delete(p_Var11);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1) {\n      operator_delete(local_44._M_dataplus._M_p);\n    }\n    p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;\n    if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }\n    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }\n    return;\n  }" if (parenthesized_expression "((p_Var14 != (__node_base *)0x0) &&\n     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var14 != (__node_base *)0x0) &&\n     (p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var14 != (__node_base *)0x0)" ( (binary_expression "p_Var14 != (__node_base *)0x0" identifier != (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0)" ( (comma_expression "p_Var7 = p_Var14->_M_nxt, p_Var7 != (_Hash_node_base *)0x0" (assignment_expression "p_Var7 = p_Var14->_M_nxt" identifier = (field_expression "p_Var14->_M_nxt" identifier -> field_identifier)) , (binary_expression "p_Var7 != (_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 (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt) {\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }\n    operator_delete(p_Var11);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1) {\n      operator_delete(local_44._M_dataplus._M_p);\n    }\n    p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;\n    if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }\n    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }\n    return;\n  }" { (if_statement "if (paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt) {\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }" if (parenthesized_expression "(paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt)" ( (binary_expression "paVar2 != (anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt)" identifier != (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                   *)p_Var11[1]._M_nxt" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                   *)p_Var11[1]._M_nxt" identifier * (ERROR ")" )) (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier))) ))) )) (compound_statement "{\n      operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);\n    }" { (expression_statement "operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt);" (call_expression "operator_delete((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt)" identifier (argument_list "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n                       *)p_Var11[1]._M_nxt" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                       *)p_Var11[1]._M_nxt" identifier * (ERROR ")" )) (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier))) )) ))) ;) })) (expression_statement "operator_delete(p_Var11);" (call_expression "operator_delete(p_Var11)" identifier (argument_list "(p_Var11)" ( identifier ))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1) {\n      operator_delete(local_44._M_dataplus._M_p);\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)local_44._M_dataplus._M_p != paVar1" (binary_expression "allocator<char>_>_9\n         *)local_44._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)local_44._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n      operator_delete(local_44._M_dataplus._M_p);\n    }" { (expression_statement "operator_delete(local_44._M_dataplus._M_p);" (call_expression "operator_delete(local_44._M_dataplus._M_p)" identifier (argument_list "(local_44._M_dataplus._M_p)" ( (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (expression_statement "p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt;" (assignment_expression "p_Var11 = p_Var7[7]._M_nxt[1]._M_nxt" identifier = (field_expression "p_Var7[7]._M_nxt[1]._M_nxt" (subscript_expression "p_Var7[7]._M_nxt[1]" (field_expression "p_Var7[7]._M_nxt" (subscript_expression "p_Var7[7]" identifier [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if ((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))) {\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }\n    else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }" if (parenthesized_expression "((p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0))))" ( (binary_expression "(p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length) &&\n       ((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))" (parenthesized_expression "(p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length)" ( (binary_expression "p_Var11 == (_Hash_node_base *)(v->tag)._M_string_length" identifier == (cast_expression "(_Hash_node_base *)(v->tag)._M_string_length" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(v->tag)._M_string_length" (parenthesized_expression "(v->tag)" ( (field_expression "v->tag" identifier -> field_identifier) )) . field_identifier))) )) && (parenthesized_expression "((pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)))" ( (parenthesized_expression "(pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0))" ( (comma_expression "pcVar5 = (v->tag)._M_dataplus._M_p, p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)" (assignment_expression "pcVar5 = (v->tag)._M_dataplus._M_p" identifier = (field_expression "(v->tag)._M_dataplus._M_p" (field_expression "(v->tag)._M_dataplus" (parenthesized_expression "(v->tag)" ( (field_expression "v->tag" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "p_Var11 == (_Hash_node_base *)0x0 ||\n        (iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)" (binary_expression "p_Var11 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0)" ( (comma_expression "iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11), iVar15 == 0" (assignment_expression "iVar15 = memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11)" identifier = (call_expression "memcmp((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11)" identifier (argument_list "((p_Var7[7]._M_nxt)->_M_nxt,pcVar5,(size_t)p_Var11)" ( (field_expression "(p_Var7[7]._M_nxt)->_M_nxt" (parenthesized_expression "(p_Var7[7]._M_nxt)" ( (field_expression "p_Var7[7]._M_nxt" (subscript_expression "p_Var7[7]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier) , identifier , (cast_expression "(size_t)p_Var11" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n      if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }\n    }" { (if_statement "if ((bool)*(char *)&p_Var7[8]._M_nxt != is_global) {\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }" if (parenthesized_expression "((bool)*(char *)&p_Var7[8]._M_nxt != is_global)" ( (binary_expression "(bool)*(char *)&p_Var7[8]._M_nxt != is_global" (cast_expression "(bool)*(char *)&p_Var7[8]._M_nxt" ( (type_descriptor "bool" primitive_type) ) (pointer_expression "*(char *)&p_Var7[8]._M_nxt" * (cast_expression "(char *)&p_Var7[8]._M_nxt" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var7[8]._M_nxt" & (field_expression "p_Var7[8]._M_nxt" (subscript_expression "p_Var7[8]" identifier [ number_literal ]) . field_identifier))))) != identifier) )) (compound_statement "{\n        pcVar9 = (match->_M_dataplus)._M_p;\n        format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );\n        gold_error(format,pcVar9,pcVar5);\n        return;\n      }" { (expression_statement "pcVar9 = (match->_M_dataplus)._M_p;" (assignment_expression "pcVar9 = (match->_M_dataplus)._M_p" identifier = (field_expression "(match->_M_dataplus)._M_p" (parenthesized_expression "(match->_M_dataplus)" ( (field_expression "match->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                );" (assignment_expression "format = (char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                )" identifier = (cast_expression "(char *)gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                )" identifier (argument_list "(\n                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                                )" ( (string_literal ""\'%s\' appears as both a global and a local symbol for version \'%s\' in script"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") ))))) ;) (expression_statement "gold_error(format,pcVar9,pcVar5);" (call_expression "gold_error(format,pcVar9,pcVar5)" identifier (argument_list "(format,pcVar9,pcVar5)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }" else (if_statement "if (p_Var7[10]._M_nxt == (_Hash_node_base *)0x0) {\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }" if (parenthesized_expression "(p_Var7[10]._M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var7[10]._M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var7[10]._M_nxt" (subscript_expression "p_Var7[10]" identifier [ number_literal ]) . field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      p_Var7[10]._M_nxt = (_Hash_node_base *)v;\n    }" { (expression_statement "p_Var7[10]._M_nxt = (_Hash_node_base *)v;" (assignment_expression "p_Var7[10]._M_nxt = (_Hash_node_base *)v" (field_expression "p_Var7[10]._M_nxt" (subscript_expression "p_Var7[10]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)v" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })))) (return_statement "return;" return ;) })) (expression_statement "local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize;" (assignment_expression "local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize" identifier = (field_expression "(pe->_M_h)._M_rehash_policy._M_next_resize" (field_expression "(pe->_M_h)._M_rehash_policy" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) comment (labeled_statement "std::__detail::_Prime_rehash_policy::_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);" statement_identifier : (ERROR ":" :) (labeled_statement "__detail::_Prime_rehash_policy::_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);" statement_identifier : (ERROR ":" :) (labeled_statement "_Prime_rehash_policy::_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);" statement_identifier : (ERROR ":" :) (expression_statement "_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6);" (call_expression "_M_need_rehash\n            ((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6)" identifier (argument_list "((uint)local_54,(uint)&(pe->_M_h)._M_rehash_policy,uVar6)" ( (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) , (binary_expression "(uint)&(pe->_M_h)._M_rehash_policy" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "(pe->_M_h)._M_rehash_policy" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier)) , identifier ))) ;)))) (if_statement "if (local_54[0] != '\0') {\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);\n    local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;\n  }" if (parenthesized_expression "(local_54[0] != '\0')" ( (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */\n    std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);\n    local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;\n  }" { comment (ERROR "std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (comma_expression "std::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std" identifier (ERROR "::\n    _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hashtable<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) >) , identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Version_script_info::Version_tree_match>,_std" identifier (ERROR "::Version_tree_match>" : : identifier >) , identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "Version_script_info::Version_tree_match>_>,_std" identifier (ERROR "::Version_tree_match>_>" : : (binary_expression "Version_tree_match>_" identifier > identifier) >) , identifier) : : (comma_expression "__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) 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_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&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_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&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_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&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_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48);" (comma_expression "_Hashtable_traits<true,_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48)" identifier , (binary_expression "_true>_>\n    ::_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_rehash((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48)" ( (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>,_std::allocator<std::pair<const_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_gold::Version_script_info::Version_tree_match>_>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (binary_expression "Version_tree_match>,_std" identifier > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (binary_expression "pair<const_std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_gold" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (binary_expression "Version_tree_match>_>,_std" (binary_expression "Version_tree_match>_" identifier > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_false,_true>_>\n                 *)pe,local_50,&local_48" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_false,_true>_>\n                 *)pe,local_50,&local_48" identifier , (comma_expression "_true>_>\n                 *)pe,local_50,&local_48" (binary_expression "_true>_>\n                 *)pe" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*)pe" * (ERROR ")" )) identifier)) , (comma_expression "local_50,&local_48" identifier , (pointer_expression "&local_48" & identifier))))) )) )))))) ;))))) (expression_statement "local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count;" (assignment_expression "local_64 = (uint)p_Var13 % (pe->_M_h)._M_bucket_count" identifier = (binary_expression "(uint)p_Var13 % (pe->_M_h)._M_bucket_count" (cast_expression "(uint)p_Var13" ( (type_descriptor "uint" type_identifier) ) identifier) % (field_expression "(pe->_M_h)._M_bucket_count" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier))) ;) })) (expression_statement "p_Var11[0xb]._M_nxt = p_Var13;" (assignment_expression "p_Var11[0xb]._M_nxt = p_Var13" (field_expression "p_Var11[0xb]._M_nxt" (subscript_expression "p_Var11[0xb]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "pp_Var8 = (pe->_M_h)._M_buckets;" (assignment_expression "pp_Var8 = (pe->_M_h)._M_buckets" identifier = (field_expression "(pe->_M_h)._M_buckets" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pp_Var4 = pp_Var8 + local_64;" (assignment_expression "pp_Var4 = pp_Var8 + local_64" identifier = (binary_expression "pp_Var8 + local_64" identifier + identifier)) ;) (if_statement "if (*pp_Var4 == (__bucket_type)0x0) {\n    p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;\n    (pe->_M_h)._M_before_begin._M_nxt = p_Var11;\n    p_Var11->_M_nxt = p_Var13;\n    if (p_Var13 != (_Hash_node_base *)0x0) {\n      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }\n    *pp_Var4 = &(pe->_M_h)._M_before_begin;\n  }\n  else {\n    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;\n    (*pp_Var4)->_M_nxt = p_Var11;\n  }" if (parenthesized_expression "(*pp_Var4 == (__bucket_type)0x0)" ( (binary_expression "*pp_Var4 == (__bucket_type)0x0" (pointer_expression "*pp_Var4" * identifier) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n    p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;\n    (pe->_M_h)._M_before_begin._M_nxt = p_Var11;\n    p_Var11->_M_nxt = p_Var13;\n    if (p_Var13 != (_Hash_node_base *)0x0) {\n      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }\n    *pp_Var4 = &(pe->_M_h)._M_before_begin;\n  }" { (expression_statement "p_Var13 = (pe->_M_h)._M_before_begin._M_nxt;" (assignment_expression "p_Var13 = (pe->_M_h)._M_before_begin._M_nxt" identifier = (field_expression "(pe->_M_h)._M_before_begin._M_nxt" (field_expression "(pe->_M_h)._M_before_begin" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pe->_M_h)._M_before_begin._M_nxt = p_Var11;" (assignment_expression "(pe->_M_h)._M_before_begin._M_nxt = p_Var11" (field_expression "(pe->_M_h)._M_before_begin._M_nxt" (field_expression "(pe->_M_h)._M_before_begin" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "p_Var11->_M_nxt = p_Var13;" (assignment_expression "p_Var11->_M_nxt = p_Var13" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) = identifier) ;) (if_statement "if (p_Var13 != (_Hash_node_base *)0x0) {\n      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }" if (parenthesized_expression "(p_Var13 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var13 != (_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      pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;\n    }" { (expression_statement "pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11;" (assignment_expression "pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = p_Var11" (subscript_expression "pp_Var8[(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count]" identifier [ (binary_expression "(uint)p_Var13[0xb]._M_nxt % (pe->_M_h)._M_bucket_count" (cast_expression "(uint)p_Var13[0xb]._M_nxt" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var13[0xb]._M_nxt" (subscript_expression "p_Var13[0xb]" identifier [ number_literal ]) . field_identifier)) % (field_expression "(pe->_M_h)._M_bucket_count" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier)) ]) = identifier) ;) })) (expression_statement "*pp_Var4 = &(pe->_M_h)._M_before_begin;" (assignment_expression "*pp_Var4 = &(pe->_M_h)._M_before_begin" (pointer_expression "*pp_Var4" * identifier) = (pointer_expression "&(pe->_M_h)._M_before_begin" & (field_expression "(pe->_M_h)._M_before_begin" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier))) ;) }) (else_clause "else {\n    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;\n    (*pp_Var4)->_M_nxt = p_Var11;\n  }" else (compound_statement "{\n    p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;\n    (*pp_Var4)->_M_nxt = p_Var11;\n  }" { (expression_statement "p_Var11->_M_nxt = (*pp_Var4)->_M_nxt;" (assignment_expression "p_Var11->_M_nxt = (*pp_Var4)->_M_nxt" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) = (field_expression "(*pp_Var4)->_M_nxt" (parenthesized_expression "(*pp_Var4)" ( (pointer_expression "*pp_Var4" * identifier) )) -> field_identifier)) ;) (expression_statement "(*pp_Var4)->_M_nxt = p_Var11;" (assignment_expression "(*pp_Var4)->_M_nxt = p_Var11" (field_expression "(*pp_Var4)->_M_nxt" (parenthesized_expression "(*pp_Var4)" ( (pointer_expression "*pp_Var4" * identifier) )) -> field_identifier) = identifier) ;) }))) (expression_statement "psVar3 = &(pe->_M_h)._M_element_count;" (assignment_expression "psVar3 = &(pe->_M_h)._M_element_count" identifier = (pointer_expression "&(pe->_M_h)._M_element_count" & (field_expression "(pe->_M_h)._M_element_count" (parenthesized_expression "(pe->_M_h)" ( (field_expression "pe->_M_h" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "*psVar3 = *psVar3 + 1;" (assignment_expression "*psVar3 = *psVar3 + 1" (pointer_expression "*psVar3" * identifier) = (binary_expression "*psVar3 + 1" (pointer_expression "*psVar3" * identifier) + number_literal)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1) {\n    return;\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)local_44._M_dataplus._M_p == paVar1" (binary_expression "allocator<char>_>_9\n       *)local_44._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)local_44._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "operator_delete(local_44._M_dataplus._M_p);" (call_expression "operator_delete(local_44._M_dataplus._M_p)" identifier (argument_list "(local_44._M_dataplus._M_p)" ( (field_expression "local_44._M_dataplus._M_p" (field_expression "local_44._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    \n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    \n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}\n\n" (function_definition "void FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    \n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    \n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}" primitive_type (function_declarator "FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int *param_6" primitive_type (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    \n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    \n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "void *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "char local_54 [4];" primitive_type (array_declarator "local_54 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x119f81;" (assignment_expression "uStack_14 = 0x119f81" identifier = number_literal) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);" (call_expression "FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0)" identifier (argument_list "(&local_44,*param_2,*param_2 + param_2[1],0)" ( (pointer_expression "&local_44" & identifier) , (pointer_expression "*param_2" * identifier) , (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" * identifier) + (subscript_expression "param_2[1]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_2c = param_3;" (assignment_expression "local_2c = param_3" identifier = identifier) ;) (expression_statement "local_28 = CONCAT31(local_28._1_3_,param_4);" (assignment_expression "local_28 = CONCAT31(local_28._1_3_,param_4)" identifier = (call_expression "CONCAT31(local_28._1_3_,param_4)" identifier (argument_list "(local_28._1_3_,param_4)" ( (field_expression "local_28._1_3_" identifier . field_identifier) , identifier )))) ;) (expression_statement "local_24 = param_5;" (assignment_expression "local_24 = param_5" identifier = identifier) ;) (expression_statement "piVar4 = (int *)FUN_0017ebf0(0x30);" (assignment_expression "piVar4 = (int *)FUN_0017ebf0(0x30)" identifier = (cast_expression "(int *)FUN_0017ebf0(0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0017ebf0(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "iVar3 = local_40;" (assignment_expression "iVar3 = local_40" identifier = identifier) ;) (expression_statement "*piVar4 = 0;" (assignment_expression "*piVar4 = 0" (pointer_expression "*piVar4" * identifier) = number_literal) ;) (expression_statement "puVar1 = (uint *)(piVar4 + 3);" (assignment_expression "puVar1 = (uint *)(piVar4 + 3)" identifier = (cast_expression "(uint *)(piVar4 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 3)" ( (binary_expression "piVar4 + 3" identifier + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)puVar1;" (assignment_expression "piVar4[1] = (int)puVar1" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)puVar1" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }" { (expression_statement "piVar4[3] = local_3c;" (assignment_expression "piVar4[3] = local_3c" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_38;" (assignment_expression "piVar4[4] = local_38" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[5] = local_34;" (assignment_expression "piVar4[5] = local_34" (subscript_expression "piVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[6] = local_30;" (assignment_expression "piVar4[6] = local_30" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar1;" (assignment_expression "puVar5 = puVar1" identifier = identifier) ;) }) (else_clause "else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" else (compound_statement "{\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" { (expression_statement "piVar4[1] = (int)local_44;" (assignment_expression "piVar4[1] = (int)local_44" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)local_44" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[3] = local_3c;" (assignment_expression "piVar4[3] = local_3c" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = local_44;" (assignment_expression "puVar5 = local_44" identifier = identifier) ;) }))) (expression_statement "piVar4[7] = (int)local_2c;" (assignment_expression "piVar4[7] = (int)local_2c" (subscript_expression "piVar4[7]" identifier [ number_literal ]) = (cast_expression "(int)local_2c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[2] = local_40;" (assignment_expression "piVar4[2] = local_40" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[8] = local_28;" (assignment_expression "piVar4[8] = local_28" (subscript_expression "piVar4[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "piVar4[9] = local_24;" (assignment_expression "piVar4[9] = local_24" (subscript_expression "piVar4[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_3c = local_3c & 0xffffff00;" (assignment_expression "local_3c = local_3c & 0xffffff00" identifier = (binary_expression "local_3c & 0xffffff00" identifier & number_literal)) ;) (expression_statement "piVar4[10] = local_20;" (assignment_expression "piVar4[10] = local_20" (subscript_expression "piVar4[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);" (assignment_expression "uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907)" identifier = (call_expression "FUN_0017eca0(puVar5,iVar3,0xc70f6907)" identifier (argument_list "(puVar5,iVar3,0xc70f6907)" ( identifier , identifier , number_literal )))) ;) (expression_statement "uVar2 = param_6[1];" (assignment_expression "uVar2 = param_6[1]" identifier = (subscript_expression "param_6[1]" identifier [ number_literal ])) ;) (expression_statement "local_64 = uVar6 % uVar2;" (assignment_expression "local_64 = uVar6 % uVar2" identifier = (binary_expression "uVar6 % uVar2" identifier % identifier)) ;) (expression_statement "piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);" (assignment_expression "piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" identifier = (cast_expression "(int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" identifier (argument_list "(param_6,local_64,piVar4 + 1,uVar6)" ( identifier , identifier , (binary_expression "piVar4 + 1" identifier + number_literal) , identifier ))))) ;) (if_statement "if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }" if (parenthesized_expression "((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0))" ( (binary_expression "(piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)" (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar3 = *piVar7, iVar3 != 0)" ( (comma_expression "iVar3 = *piVar7, iVar3 != 0" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }" { (if_statement "if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }" if (parenthesized_expression "(puVar1 != (uint *)piVar4[1])" ( (binary_expression "puVar1 != (uint *)piVar4[1]" identifier != (cast_expression "(uint *)piVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      FUN_001807a0((uint *)piVar4[1]);\n    }" { (expression_statement "FUN_001807a0((uint *)piVar4[1]);" (call_expression "FUN_001807a0((uint *)piVar4[1])" identifier (argument_list "((uint *)piVar4[1])" ( (cast_expression "(uint *)piVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ])) ))) ;) })) (expression_statement "FUN_001807a0(piVar4);" (call_expression "FUN_001807a0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (if_statement "if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }" if (parenthesized_expression "(local_44 != &local_3c)" ( (binary_expression "local_44 != &local_3c" identifier != (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n      FUN_001807a0(local_44);\n    }" { (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) })) (expression_statement "__n = (*(undefined4 **)(iVar3 + 0x1c))[1];" (assignment_expression "__n = (*(undefined4 **)(iVar3 + 0x1c))[1]" identifier = (subscript_expression "(*(undefined4 **)(iVar3 + 0x1c))[1]" (parenthesized_expression "(*(undefined4 **)(iVar3 + 0x1c))" ( (pointer_expression "*(undefined4 **)(iVar3 + 0x1c)" * (cast_expression "(undefined4 **)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))) )) [ number_literal ])) ;) (if_statement "if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" if (parenthesized_expression "((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0))))" ( (binary_expression "(__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))" (parenthesized_expression "(__n == param_3[1])" ( (binary_expression "__n == param_3[1]" identifier == (subscript_expression "param_3[1]" identifier [ number_literal ])) )) && (parenthesized_expression "((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))" ( (parenthesized_expression "(__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0))" ( (comma_expression "__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (assignment_expression "__s2 = (void *)*param_3" identifier = (cast_expression "(void *)*param_3" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) , (binary_expression "__n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (binary_expression "__n == 0" identifier == number_literal) || (parenthesized_expression "(iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" ( (comma_expression "iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0" (assignment_expression "iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" identifier = (call_expression "memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" identifier (argument_list "((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" ( (cast_expression "(void *)**(undefined4 **)(iVar3 + 0x1c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar3 + 0x1c)" * (pointer_expression "*(undefined4 **)(iVar3 + 0x1c)" * (cast_expression "(undefined4 **)(iVar3 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x1c)" ( (binary_expression "iVar3 + 0x1c" identifier + number_literal) )))))) , identifier , identifier )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }" { (if_statement "if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }" if (parenthesized_expression "(*(char *)(iVar3 + 0x20) != param_4)" ( (binary_expression "*(char *)(iVar3 + 0x20) != param_4" (pointer_expression "*(char *)(iVar3 + 0x20)" * (cast_expression "(char *)(iVar3 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }" { (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );" (assignment_expression "uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" identifier = (call_expression "gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" identifier (argument_list "(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" ( (string_literal ""\'%s\' appears as both a global and a local symbol for version \'%s\' in script"" " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "FUN_0005ad00(uVar9,iVar3,__s2);" (call_expression "FUN_0005ad00(uVar9,iVar3,__s2)" identifier (argument_list "(uVar9,iVar3,__s2)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" else (if_statement "if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) == 0)" ( (binary_expression "*(int *)(iVar3 + 0x28) == 0" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" { (expression_statement "*(undefined4 **)(iVar3 + 0x28) = param_3;" (assignment_expression "*(undefined4 **)(iVar3 + 0x28) = param_3" (pointer_expression "*(undefined4 **)(iVar3 + 0x28)" * (cast_expression "(undefined4 **)(iVar3 + 0x28)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) = identifier) ;) })))) (return_statement "return;" return ;) })) (expression_statement "local_48 = param_6[5];" (assignment_expression "local_48 = param_6[5]" identifier = (subscript_expression "param_6[5]" identifier [ number_literal ])) ;) (expression_statement "FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);" (call_expression "FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1)" identifier (argument_list "(local_54,param_6 + 4,uVar2,param_6[3],1)" ( identifier , (binary_expression "param_6 + 4" identifier + number_literal) , identifier , (subscript_expression "param_6[3]" identifier [ number_literal ]) , number_literal ))) ;) (if_statement "if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }" if (parenthesized_expression "(local_54[0] != '\0')" ( (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }" { (expression_statement "FUN_0011c800(param_6,local_50,&local_48);" (call_expression "FUN_0011c800(param_6,local_50,&local_48)" identifier (argument_list "(param_6,local_50,&local_48)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) ))) ;) (expression_statement "local_64 = uVar6 % (uint)param_6[1];" (assignment_expression "local_64 = uVar6 % (uint)param_6[1]" identifier = (binary_expression "uVar6 % (uint)param_6[1]" identifier % (cast_expression "(uint)param_6[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[1]" identifier [ number_literal ])))) ;) })) (expression_statement "piVar4[0xb] = uVar6;" (assignment_expression "piVar4[0xb] = uVar6" (subscript_expression "piVar4[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" identifier = (pointer_expression "*param_6" * identifier)) ;) (expression_statement "piVar7 = (int *)(iVar3 + local_64 * 4);" (assignment_expression "piVar7 = (int *)(iVar3 + local_64 * 4)" identifier = (cast_expression "(int *)(iVar3 + local_64 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + local_64 * 4)" ( (binary_expression "iVar3 + local_64 * 4" identifier + (binary_expression "local_64 * 4" identifier * number_literal)) )))) ;) (if_statement "if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" if (parenthesized_expression "((int *)*piVar7 == (int *)0x0)" ( (binary_expression "(int *)*piVar7 == (int *)0x0" (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }" { (expression_statement "iVar8 = param_6[2];" (assignment_expression "iVar8 = param_6[2]" identifier = (subscript_expression "param_6[2]" identifier [ number_literal ])) ;) (expression_statement "param_6[2] = (int)piVar4;" (assignment_expression "param_6[2] = (int)piVar4" (subscript_expression "param_6[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar4 = iVar8;" (assignment_expression "*piVar4 = iVar8" (pointer_expression "*piVar4" * identifier) = identifier) ;) (if_statement "if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }" { (expression_statement "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;" (assignment_expression "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4" (pointer_expression "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" * (cast_expression "(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" ( (binary_expression "iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4" identifier + (binary_expression "(*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4" (parenthesized_expression "(*(uint *)(iVar8 + 0x2c) % (uint)param_6[1])" ( (binary_expression "*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]" (pointer_expression "*(uint *)(iVar8 + 0x2c)" * (cast_expression "(uint *)(iVar8 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c)" ( (binary_expression "iVar8 + 0x2c" identifier + number_literal) )))) % (cast_expression "(uint)param_6[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_6[1]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) })) (expression_statement "*piVar7 = (int)(param_6 + 2);" (assignment_expression "*piVar7 = (int)(param_6 + 2)" (pointer_expression "*piVar7" * identifier) = (cast_expression "(int)(param_6 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_6 + 2)" ( (binary_expression "param_6 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" else (compound_statement "{\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" { (expression_statement "*piVar4 = *(int *)*piVar7;" (assignment_expression "*piVar4 = *(int *)*piVar7" (pointer_expression "*piVar4" * identifier) = (pointer_expression "*(int *)*piVar7" * (cast_expression "(int *)*piVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar7" * identifier)))) ;) (expression_statement "*(int **)*piVar7 = piVar4;" (assignment_expression "*(int **)*piVar7 = piVar4" (pointer_expression "*(int **)*piVar7" * (cast_expression "(int **)*piVar7" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*piVar7" * identifier))) = identifier) ;) }))) (expression_statement "param_6[3] = param_6[3] + 1;" (assignment_expression "param_6[3] = param_6[3] + 1" (subscript_expression "param_6[3]" identifier [ number_literal ]) = (binary_expression "param_6[3] + 1" (subscript_expression "param_6[3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (local_44 == &local_3c) {\n    return;\n  }" if (parenthesized_expression "(local_44 == &local_3c)" ( (binary_expression "local_44 == &local_3c" identifier == (pointer_expression "&local_3c" & identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ])) , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , 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 *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) )))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) }) (else_clause else (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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (subscript_expression IDENT [ LIT ]) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    \n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    \n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00119f70(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)" (identifier "FUN_00119f70") (parameter_list "(undefined4 param_1,int *param_2,undefined4 *param_3,char param_4,int param_5,\n                 int *param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char param_4" (primitive_type "char") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int *param_6" (primitive_type "int") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  int iVar3;\n  size_t __n;\n  void *__s2;\n  int *piVar4;\n  uint *puVar5;\n  uint uVar6;\n  int *piVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint local_64;\n  char local_54 [4];\n  undefined4 local_50;\n  int local_48;\n  uint *local_44;\n  int local_40;\n  uint local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  undefined4 *local_2c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x119f81;\n  local_44 = &local_3c;\n  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);\n  local_20 = 0;\n  local_2c = param_3;\n  local_28 = CONCAT31(local_28._1_3_,param_4);\n  local_24 = param_5;\n                    \n  piVar4 = (int *)FUN_0017ebf0(0x30);\n  iVar3 = local_40;\n  *piVar4 = 0;\n  puVar1 = (uint *)(piVar4 + 3);\n  piVar4[1] = (int)puVar1;\n  if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }\n  piVar4[7] = (int)local_2c;\n  piVar4[2] = local_40;\n  piVar4[8] = local_28;\n  local_40 = 0;\n  piVar4[9] = local_24;\n  local_3c = local_3c & 0xffffff00;\n  piVar4[10] = local_20;\n  local_44 = &local_3c;\n  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);\n  uVar2 = param_6[1];\n  local_64 = uVar6 % uVar2;\n  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);\n  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }\n  local_48 = param_6[5];\n                    \n  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);\n  if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }\n  piVar4[0xb] = uVar6;\n  iVar3 = *param_6;\n  piVar7 = (int *)(iVar3 + local_64 * 4);\n  if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }\n  param_6[3] = param_6[3] + 1;\n  if (local_44 == &local_3c) {\n    return;\n  }\n  FUN_001807a0(local_44);\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "void *__s2;" (primitive_type "void") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "char local_54 [4];" (primitive_type "char") (array_declarator "local_54 [4]" (identifier "local_54") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "uint *local_44;" (type_identifier "uint") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x119f81;" (assignment_expression "uStack_14 = 0x119f81" (identifier "uStack_14") (= "=") (number_literal "0x119f81")) (; ";")) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);" (call_expression "FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0)" (identifier "FUN_0004d4e0") (argument_list "(&local_44,*param_2,*param_2 + param_2[1],0)" (( "(") (pointer_expression "&local_44" (& "&") (identifier "local_44")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (binary_expression "*param_2 + param_2[1]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_2c = param_3;" (assignment_expression "local_2c = param_3" (identifier "local_2c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_28 = CONCAT31(local_28._1_3_,param_4);" (assignment_expression "local_28 = CONCAT31(local_28._1_3_,param_4)" (identifier "local_28") (= "=") (call_expression "CONCAT31(local_28._1_3_,param_4)" (identifier "CONCAT31") (argument_list "(local_28._1_3_,param_4)" (( "(") (field_expression "local_28._1_3_" (identifier "local_28") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "local_24 = param_5;" (assignment_expression "local_24 = param_5" (identifier "local_24") (= "=") (identifier "param_5")) (; ";")) (expression_statement "piVar4 = (int *)FUN_0017ebf0(0x30);" (assignment_expression "piVar4 = (int *)FUN_0017ebf0(0x30)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_0017ebf0(0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0017ebf0(0x30)" (identifier "FUN_0017ebf0") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "iVar3 = local_40;" (assignment_expression "iVar3 = local_40" (identifier "iVar3") (= "=") (identifier "local_40")) (; ";")) (expression_statement "*piVar4 = 0;" (assignment_expression "*piVar4 = 0" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1 = (uint *)(piVar4 + 3);" (assignment_expression "puVar1 = (uint *)(piVar4 + 3)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(piVar4 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 3)" (( "(") (binary_expression "piVar4 + 3" (identifier "piVar4") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "piVar4[1] = (int)puVar1;" (assignment_expression "piVar4[1] = (int)puVar1" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)puVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar1"))) (; ";")) (if_statement "if (local_44 == &local_3c) {\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }\n  else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" (if "if") (parenthesized_expression "(local_44 == &local_3c)" (( "(") (binary_expression "local_44 == &local_3c" (identifier "local_44") (== "==") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n    piVar4[3] = local_3c;\n    piVar4[4] = local_38;\n    piVar4[5] = local_34;\n    piVar4[6] = local_30;\n    puVar5 = puVar1;\n  }" ({ "{") (expression_statement "piVar4[3] = local_3c;" (assignment_expression "piVar4[3] = local_3c" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "piVar4[4] = local_38;" (assignment_expression "piVar4[4] = local_38" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_38")) (; ";")) (expression_statement "piVar4[5] = local_34;" (assignment_expression "piVar4[5] = local_34" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "piVar4[6] = local_30;" (assignment_expression "piVar4[6] = local_30" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar5 = puVar1;" (assignment_expression "puVar5 = puVar1" (identifier "puVar5") (= "=") (identifier "puVar1")) (; ";")) (} "}")) (else_clause "else {\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" (else "else") (compound_statement "{\n    piVar4[1] = (int)local_44;\n    piVar4[3] = local_3c;\n    puVar5 = local_44;\n  }" ({ "{") (expression_statement "piVar4[1] = (int)local_44;" (assignment_expression "piVar4[1] = (int)local_44" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)local_44" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_44"))) (; ";")) (expression_statement "piVar4[3] = local_3c;" (assignment_expression "piVar4[3] = local_3c" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "puVar5 = local_44;" (assignment_expression "puVar5 = local_44" (identifier "puVar5") (= "=") (identifier "local_44")) (; ";")) (} "}")))) (expression_statement "piVar4[7] = (int)local_2c;" (assignment_expression "piVar4[7] = (int)local_2c" (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(int)local_2c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_2c"))) (; ";")) (expression_statement "piVar4[2] = local_40;" (assignment_expression "piVar4[2] = local_40" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "piVar4[8] = local_28;" (assignment_expression "piVar4[8] = local_28" (subscript_expression "piVar4[8]" (identifier "piVar4") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4[9] = local_24;" (assignment_expression "piVar4[9] = local_24" (subscript_expression "piVar4[9]" (identifier "piVar4") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_24")) (; ";")) (expression_statement "local_3c = local_3c & 0xffffff00;" (assignment_expression "local_3c = local_3c & 0xffffff00" (identifier "local_3c") (= "=") (binary_expression "local_3c & 0xffffff00" (identifier "local_3c") (& "&") (number_literal "0xffffff00"))) (; ";")) (expression_statement "piVar4[10] = local_20;" (assignment_expression "piVar4[10] = local_20" (subscript_expression "piVar4[10]" (identifier "piVar4") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "local_20")) (; ";")) (expression_statement "local_44 = &local_3c;" (assignment_expression "local_44 = &local_3c" (identifier "local_44") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);" (assignment_expression "uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907)" (identifier "uVar6") (= "=") (call_expression "FUN_0017eca0(puVar5,iVar3,0xc70f6907)" (identifier "FUN_0017eca0") (argument_list "(puVar5,iVar3,0xc70f6907)" (( "(") (identifier "puVar5") (, ",") (identifier "iVar3") (, ",") (number_literal "0xc70f6907") () ")")))) (; ";")) (expression_statement "uVar2 = param_6[1];" (assignment_expression "uVar2 = param_6[1]" (identifier "uVar2") (= "=") (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_64 = uVar6 % uVar2;" (assignment_expression "local_64 = uVar6 % uVar2" (identifier "local_64") (= "=") (binary_expression "uVar6 % uVar2" (identifier "uVar6") (% "%") (identifier "uVar2"))) (; ";")) (expression_statement "piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);" (assignment_expression "piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" (identifier "piVar7") (= "=") (cast_expression "(int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6)" (identifier "FUN_0011c5a0") (argument_list "(param_6,local_64,piVar4 + 1,uVar6)" (( "(") (identifier "param_6") (, ",") (identifier "local_64") (, ",") (binary_expression "piVar4 + 1" (identifier "piVar4") (+ "+") (number_literal "1")) (, ",") (identifier "uVar6") () ")"))))) (; ";")) (if_statement "if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0))" (( "(") (binary_expression "(piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)" (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = *piVar7, iVar3 != 0)" (( "(") (comma_expression "iVar3 = *piVar7, iVar3 != 0" (assignment_expression "iVar3 = *piVar7" (identifier "iVar3") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }\n    FUN_001807a0(piVar4);\n    if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }\n    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];\n    if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }\n    return;\n  }" ({ "{") (if_statement "if (puVar1 != (uint *)piVar4[1]) {\n      FUN_001807a0((uint *)piVar4[1]);\n    }" (if "if") (parenthesized_expression "(puVar1 != (uint *)piVar4[1])" (( "(") (binary_expression "puVar1 != (uint *)piVar4[1]" (identifier "puVar1") (!= "!=") (cast_expression "(uint *)piVar4[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      FUN_001807a0((uint *)piVar4[1]);\n    }" ({ "{") (expression_statement "FUN_001807a0((uint *)piVar4[1]);" (call_expression "FUN_001807a0((uint *)piVar4[1])" (identifier "FUN_001807a0") (argument_list "((uint *)piVar4[1])" (( "(") (cast_expression "(uint *)piVar4[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001807a0(piVar4);" (call_expression "FUN_001807a0(piVar4)" (identifier "FUN_001807a0") (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";")) (if_statement "if (local_44 != &local_3c) {\n      FUN_001807a0(local_44);\n    }" (if "if") (parenthesized_expression "(local_44 != &local_3c)" (( "(") (binary_expression "local_44 != &local_3c" (identifier "local_44") (!= "!=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n      FUN_001807a0(local_44);\n    }" ({ "{") (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" (identifier "FUN_001807a0") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (} "}"))) (expression_statement "__n = (*(undefined4 **)(iVar3 + 0x1c))[1];" (assignment_expression "__n = (*(undefined4 **)(iVar3 + 0x1c))[1]" (identifier "__n") (= "=") (subscript_expression "(*(undefined4 **)(iVar3 + 0x1c))[1]" (parenthesized_expression "(*(undefined4 **)(iVar3 + 0x1c))" (( "(") (pointer_expression "*(undefined4 **)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }\n    else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" (if "if") (parenthesized_expression "((__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0))))" (( "(") (binary_expression "(__n == param_3[1]) &&\n       ((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))" (parenthesized_expression "(__n == param_3[1])" (( "(") (binary_expression "__n == param_3[1]" (identifier "__n") (== "==") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "((__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))" (( "(") (parenthesized_expression "(__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0))" (( "(") (comma_expression "__s2 = (void *)*param_3, __n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (assignment_expression "__s2 = (void *)*param_3" (identifier "__s2") (= "=") (cast_expression "(void *)*param_3" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (, ",") (binary_expression "__n == 0 ||\n        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (binary_expression "__n == 0" (identifier "__n") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)" (( "(") (comma_expression "iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0" (assignment_expression "iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" (identifier "iVar8") (= "=") (call_expression "memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" (identifier "memcmp") (argument_list "((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n)" (( "(") (cast_expression "(void *)**(undefined4 **)(iVar3 + 0x1c)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar3 + 0x1c)" (* "*") (pointer_expression "*(undefined4 **)(iVar3 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(iVar3 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x1c)" (( "(") (binary_expression "iVar3 + 0x1c" (identifier "iVar3") (+ "+") (number_literal "0x1c")) () ")")))))) (, ",") (identifier "__s2") (, ",") (identifier "__n") () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }\n    }" ({ "{") (if_statement "if (*(char *)(iVar3 + 0x20) != param_4) {\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar3 + 0x20) != param_4)" (( "(") (binary_expression "*(char *)(iVar3 + 0x20) != param_4" (pointer_expression "*(char *)(iVar3 + 0x20)" (* "*") (cast_expression "(char *)(iVar3 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (identifier "param_4")) () ")")) (compound_statement "{\n        iVar3 = *param_2;\n        uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );\n        FUN_0005ad00(uVar9,iVar3,__s2);\n        return;\n      }" ({ "{") (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       );" (assignment_expression "uVar9 = gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" (identifier "uVar9") (= "=") (call_expression "gettext(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" (identifier "gettext") (argument_list "(\n                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"\n                       )" (( "(") (string_literal ""\'%s\' appears as both a global and a local symbol for version \'%s\' in script"" (" """) (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " appears as both a global and a local symbol for version ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " in script") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0005ad00(uVar9,iVar3,__s2);" (call_expression "FUN_0005ad00(uVar9,iVar3,__s2)" (identifier "FUN_0005ad00") (argument_list "(uVar9,iVar3,__s2)" (( "(") (identifier "uVar9") (, ",") (identifier "iVar3") (, ",") (identifier "__s2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" (else "else") (if_statement "if (*(int *)(iVar3 + 0x28) == 0) {\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x28) == 0)" (( "(") (binary_expression "*(int *)(iVar3 + 0x28) == 0" (pointer_expression "*(int *)(iVar3 + 0x28)" (* "*") (cast_expression "(int *)(iVar3 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 **)(iVar3 + 0x28) = param_3;\n    }" ({ "{") (expression_statement "*(undefined4 **)(iVar3 + 0x28) = param_3;" (assignment_expression "*(undefined4 **)(iVar3 + 0x28) = param_3" (pointer_expression "*(undefined4 **)(iVar3 + 0x28)" (* "*") (cast_expression "(undefined4 **)(iVar3 + 0x28)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (} "}"))))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_48 = param_6[5];" (assignment_expression "local_48 = param_6[5]" (identifier "local_48") (= "=") (subscript_expression "param_6[5]" (identifier "param_6") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);" (call_expression "FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1)" (identifier "FUN_001c5e50") (argument_list "(local_54,param_6 + 4,uVar2,param_6[3],1)" (( "(") (identifier "local_54") (, ",") (binary_expression "param_6 + 4" (identifier "param_6") (+ "+") (number_literal "4")) (, ",") (identifier "uVar2") (, ",") (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";")) (if_statement "if (local_54[0] != '\0') {\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }" (if "if") (parenthesized_expression "(local_54[0] != '\0')" (( "(") (binary_expression "local_54[0] != '\0'" (subscript_expression "local_54[0]" (identifier "local_54") ([ "[") (number_literal "0") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n    FUN_0011c800(param_6,local_50,&local_48);\n    local_64 = uVar6 % (uint)param_6[1];\n  }" ({ "{") (expression_statement "FUN_0011c800(param_6,local_50,&local_48);" (call_expression "FUN_0011c800(param_6,local_50,&local_48)" (identifier "FUN_0011c800") (argument_list "(param_6,local_50,&local_48)" (( "(") (identifier "param_6") (, ",") (identifier "local_50") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")"))) (; ";")) (expression_statement "local_64 = uVar6 % (uint)param_6[1];" (assignment_expression "local_64 = uVar6 % (uint)param_6[1]" (identifier "local_64") (= "=") (binary_expression "uVar6 % (uint)param_6[1]" (identifier "uVar6") (% "%") (cast_expression "(uint)param_6[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (} "}"))) (expression_statement "piVar4[0xb] = uVar6;" (assignment_expression "piVar4[0xb] = uVar6" (subscript_expression "piVar4[0xb]" (identifier "piVar4") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar3 = *param_6;" (assignment_expression "iVar3 = *param_6" (identifier "iVar3") (= "=") (pointer_expression "*param_6" (* "*") (identifier "param_6"))) (; ";")) (expression_statement "piVar7 = (int *)(iVar3 + local_64 * 4);" (assignment_expression "piVar7 = (int *)(iVar3 + local_64 * 4)" (identifier "piVar7") (= "=") (cast_expression "(int *)(iVar3 + local_64 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + local_64 * 4)" (( "(") (binary_expression "iVar3 + local_64 * 4" (identifier "iVar3") (+ "+") (binary_expression "local_64 * 4" (identifier "local_64") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((int *)*piVar7 == (int *)0x0) {\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }\n  else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" (if "if") (parenthesized_expression "((int *)*piVar7 == (int *)0x0)" (( "(") (binary_expression "(int *)*piVar7 == (int *)0x0" (cast_expression "(int *)*piVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar8 = param_6[2];\n    param_6[2] = (int)piVar4;\n    *piVar4 = iVar8;\n    if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }\n    *piVar7 = (int)(param_6 + 2);\n  }" ({ "{") (expression_statement "iVar8 = param_6[2];" (assignment_expression "iVar8 = param_6[2]" (identifier "iVar8") (= "=") (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_6[2] = (int)piVar4;" (assignment_expression "param_6[2] = (int)piVar4" (subscript_expression "param_6[2]" (identifier "param_6") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "*piVar4 = iVar8;" (assignment_expression "*piVar4 = iVar8" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (iVar8 != 0) {\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;\n    }" ({ "{") (expression_statement "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;" (assignment_expression "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4" (pointer_expression "*(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" (* "*") (cast_expression "(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4)" (( "(") (binary_expression "iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4" (identifier "iVar3") (+ "+") (binary_expression "(*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4" (parenthesized_expression "(*(uint *)(iVar8 + 0x2c) % (uint)param_6[1])" (( "(") (binary_expression "*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]" (pointer_expression "*(uint *)(iVar8 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar8 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x2c)" (( "(") (binary_expression "iVar8 + 0x2c" (identifier "iVar8") (+ "+") (number_literal "0x2c")) () ")")))) (% "%") (cast_expression "(uint)param_6[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_6[1]" (identifier "param_6") ([ "[") (number_literal "1") (] "]")))) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (} "}"))) (expression_statement "*piVar7 = (int)(param_6 + 2);" (assignment_expression "*piVar7 = (int)(param_6 + 2)" (pointer_expression "*piVar7" (* "*") (identifier "piVar7")) (= "=") (cast_expression "(int)(param_6 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_6 + 2)" (( "(") (binary_expression "param_6 + 2" (identifier "param_6") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" (else "else") (compound_statement "{\n    *piVar4 = *(int *)*piVar7;\n    *(int **)*piVar7 = piVar4;\n  }" ({ "{") (expression_statement "*piVar4 = *(int *)*piVar7;" (assignment_expression "*piVar4 = *(int *)*piVar7" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (pointer_expression "*(int *)*piVar7" (* "*") (cast_expression "(int *)*piVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))))) (; ";")) (expression_statement "*(int **)*piVar7 = piVar4;" (assignment_expression "*(int **)*piVar7 = piVar4" (pointer_expression "*(int **)*piVar7" (* "*") (cast_expression "(int **)*piVar7" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*piVar7" (* "*") (identifier "piVar7")))) (= "=") (identifier "piVar4")) (; ";")) (} "}")))) (expression_statement "param_6[3] = param_6[3] + 1;" (assignment_expression "param_6[3] = param_6[3] + 1" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_6[3] + 1" (subscript_expression "param_6[3]" (identifier "param_6") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_44 == &local_3c) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_44 == &local_3c)" (( "(") (binary_expression "local_44 == &local_3c" (identifier "local_44") (== "==") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_001807a0(local_44);" (call_expression "FUN_001807a0(local_44)" (identifier "FUN_001807a0") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: void add_exact_match(Version_script_info * this, string * match,
   Version_tree * v, bool is_global, Version_expression * ve, Exact * pe) */

void __thiscall
gold::type_1::function_1
          (type_1 *this,type_2 *match,type_3 *v,bool var_23,
          type_4 *ve,type_5 *pe)

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_6 *psVar3;
  type_7 *pp_Var4;
  type_8 var_9;
  type_9 var_14;
  type_10 *var_19;
  type_7 *var_28;
  type_8 pcVar9;
  type_6 sVar10;
  type_10 *var_12;
  type_11 _Var12;
  type_10 *var_30;
  type_12 *var_18;
  int var_22;
  char *format;
  type_9 var_29;
  char local_54 [4];
  type_6 local_50;
  size_t local_48;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_7;
  type_3 *local_2c;
  type_10 *local_28;
  type_4 *local_24;
  type_10 *local_20;
  type_13 uStack_14;
  
  var_5 = &var_7.field_2;
  uStack_14 = 0x119f81;
  var_9 = (match->_M_dataplus)._M_p;
  var_7._M_dataplus._M_p = (type_8)var_5;
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_8<var_2*>(&var_7,var_9,var_9 + match->_M_string_length,0);
  local_20 = (type_10 *)0x0;
  local_2c = v;
  local_28 = (type_10 *)var_10(local_28._1_3_,var_23);
  local_24 = ve;
                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */
  var_12 = (type_10 *)var_11(0x30);
  sVar10 = var_7._M_string_length;
  var_12->_M_nxt = (type_10 *)0x0;
  var_6 = (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
            *)(var_12 + 3);
  var_12[1]._M_nxt = (type_10 *)var_6;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_7._M_dataplus._M_p == var_5) {
    var_12[3]._M_nxt = (type_10 *)var_7.field_2._M_allocated_capacity;
    var_12[4]._M_nxt = (type_10 *)var_7.field_2._4_4_;
    var_12[5]._M_nxt = (type_10 *)var_7.field_2._8_4_;
    var_12[6]._M_nxt = (type_10 *)var_7.field_2._12_4_;
    _Var12._M_p = (type_8)var_6;
  }
  else {
    var_12[1]._M_nxt = (type_10 *)var_7._M_dataplus._M_p;
    var_12[3]._M_nxt = (type_10 *)var_7.field_2._M_allocated_capacity;
    _Var12._M_p = var_7._M_dataplus._M_p;
  }
  var_12[7]._M_nxt = (type_10 *)local_2c;
  var_12[2]._M_nxt = (type_10 *)var_7._M_string_length;
  var_12[8]._M_nxt = local_28;
  var_7._M_string_length = 0;
  var_12[9]._M_nxt = (type_10 *)local_24;
  var_7.field_2._M_allocated_capacity = var_7.field_2._M_allocated_capacity & 0xffffff00;
  var_12[10]._M_nxt = local_20;
  var_7._M_dataplus._M_p = (type_8)var_5;
  var_30 = (type_10 *)std::var_13(_Var12._M_p,sVar10,0xc70f6907);
  var_14 = (pe->_M_h)._M_bucket_count;
  var_29 = (type_9)var_30 % var_14;
  var_18 = std::
            _Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>,_std::var_1<std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>var_3>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_15<true,_false,var_16>var_3>
            ::var_17
                      ((_Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>,_std::var_1<std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>var_3>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_15<true,_false,var_16>var_3>
                        *)pe,var_29,(type_14 *)(var_12 + 1),(type_15)var_30);
  if ((var_18 != (type_12 *)0x0) &&
     (var_19 = var_18->_M_nxt, var_19 != (type_10 *)0x0)) {
    if (var_6 != (anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                   *)var_12[1]._M_nxt) {
      var_20((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
                       *)var_12[1]._M_nxt);
    }
    var_20(var_12);
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
         *)var_7._M_dataplus._M_p != var_5) {
      var_20(var_7._M_dataplus._M_p);
    }
    var_12 = var_19[7]._M_nxt[1]._M_nxt;
    if ((var_12 == (type_10 *)(v->tag)._M_string_length) &&
       ((var_9 = (v->tag)._M_dataplus._M_p, var_12 == (type_10 *)0x0 ||
        (var_22 = var_21((var_19[7]._M_nxt)->_M_nxt,var_9,(size_t)var_12), var_22 == 0)))) {
      if ((bool)*(char *)&var_19[8]._M_nxt != var_23) {
        pcVar9 = (match->_M_dataplus)._M_p;
        format = (char *)var_24(
                                "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"
                                );
        var_25(format,pcVar9,var_9);
        return;
      }
    }
    else if (var_19[10]._M_nxt == (type_10 *)0x0) {
      var_19[10]._M_nxt = (type_10 *)v;
    }
    return;
  }
  local_48 = (pe->_M_h)._M_rehash_policy._M_next_resize;
                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */
  std::__detail::_Prime_rehash_policy::var_26
            ((type_9)local_54,(type_9)&(pe->_M_h)._M_rehash_policy,var_14);
  if (local_54[0] != '\0') {
                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */
    std::
    _Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>,_std::var_1<std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>var_3>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_15<true,_false,var_16>var_3>
    ::var_27((_Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>,_std::var_1<std::pair<const_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_gold::type_1::Version_tree_match>var_3>,_std::__detail::_Select1st,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_15<true,_false,var_16>var_3>
                 *)pe,local_50,&local_48);
    var_29 = (type_9)var_30 % (pe->_M_h)._M_bucket_count;
  }
  var_12[0xb]._M_nxt = var_30;
  var_28 = (pe->_M_h)._M_buckets;
  pp_Var4 = var_28 + var_29;
  if (*pp_Var4 == (type_7)0x0) {
    var_30 = (pe->_M_h)._M_before_begin._M_nxt;
    (pe->_M_h)._M_before_begin._M_nxt = var_12;
    var_12->_M_nxt = var_30;
    if (var_30 != (type_10 *)0x0) {
      var_28[(type_9)var_30[0xb]._M_nxt % (pe->_M_h)._M_bucket_count] = var_12;
    }
    *pp_Var4 = &(pe->_M_h)._M_before_begin;
  }
  else {
    var_12->_M_nxt = (*pp_Var4)->_M_nxt;
    (*pp_Var4)->_M_nxt = var_12;
  }
  psVar3 = &(pe->_M_h)._M_element_count;
  *psVar3 = *psVar3 + 1;
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)var_7._M_dataplus._M_p == var_5) {
    return;
  }
  var_20(var_7._M_dataplus._M_p);
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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

{
  uint *puVar1;
  uint uVar2;
  int iVar3;
  size_t __n;
  void *__s2;
  int *piVar4;
  uint *puVar5;
  uint uVar6;
  int *piVar7;
  int iVar8;
  undefined4 uVar9;
  uint local_64;
  char local_54 [4];
  undefined4 local_50;
  int local_48;
  uint *local_44;
  int local_40;
  uint local_3c;
  int local_38;
  int local_34;
  int local_30;
  undefined4 *local_2c;
  int local_28;
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x119f81;
  local_44 = &local_3c;
  FUN_0004d4e0(&local_44,*param_2,*param_2 + param_2[1],0);
  local_20 = 0;
  local_2c = param_3;
  local_28 = CONCAT31(local_28._1_3_,param_4);
  local_24 = param_5;
                    /* try { // try from 00119fd1 to 00119fd5 has its CatchHandler @ 0011a246 */
  piVar4 = (int *)FUN_0017ebf0(0x30);
  iVar3 = local_40;
  *piVar4 = 0;
  puVar1 = (uint *)(piVar4 + 3);
  piVar4[1] = (int)puVar1;
  if (local_44 == &local_3c) {
    piVar4[3] = local_3c;
    piVar4[4] = local_38;
    piVar4[5] = local_34;
    piVar4[6] = local_30;
    puVar5 = puVar1;
  }
  else {
    piVar4[1] = (int)local_44;
    piVar4[3] = local_3c;
    puVar5 = local_44;
  }
  piVar4[7] = (int)local_2c;
  piVar4[2] = local_40;
  piVar4[8] = local_28;
  local_40 = 0;
  piVar4[9] = local_24;
  local_3c = local_3c & 0xffffff00;
  piVar4[10] = local_20;
  local_44 = &local_3c;
  uVar6 = FUN_0017eca0(puVar5,iVar3,0xc70f6907);
  uVar2 = param_6[1];
  local_64 = uVar6 % uVar2;
  piVar7 = (int *)FUN_0011c5a0(param_6,local_64,piVar4 + 1,uVar6);
  if ((piVar7 != (int *)0x0) && (iVar3 = *piVar7, iVar3 != 0)) {
    if (puVar1 != (uint *)piVar4[1]) {
      FUN_001807a0((uint *)piVar4[1]);
    }
    FUN_001807a0(piVar4);
    if (local_44 != &local_3c) {
      FUN_001807a0(local_44);
    }
    __n = (*(undefined4 **)(iVar3 + 0x1c))[1];
    if ((__n == param_3[1]) &&
       ((__s2 = (void *)*param_3, __n == 0 ||
        (iVar8 = memcmp((void *)**(undefined4 **)(iVar3 + 0x1c),__s2,__n), iVar8 == 0)))) {
      if (*(char *)(iVar3 + 0x20) != param_4) {
        iVar3 = *param_2;
        uVar9 = gettext(
                       "\'%s\' appears as both a global and a local symbol for version \'%s\' in script"
                       );
        FUN_0005ad00(uVar9,iVar3,__s2);
        return;
      }
    }
    else if (*(int *)(iVar3 + 0x28) == 0) {
      *(undefined4 **)(iVar3 + 0x28) = param_3;
    }
    return;
  }
  local_48 = param_6[5];
                    /* try { // try from 0011a108 to 0011a10c has its CatchHandler @ 0011a246 */
  FUN_001c5e50(local_54,param_6 + 4,uVar2,param_6[3],1);
  if (local_54[0] != '\0') {
                    /* try { // try from 0011a124 to 0011a128 has its CatchHandler @ 0011a241 */
    FUN_0011c800(param_6,local_50,&local_48);
    local_64 = uVar6 % (uint)param_6[1];
  }
  piVar4[0xb] = uVar6;
  iVar3 = *param_6;
  piVar7 = (int *)(iVar3 + local_64 * 4);
  if ((int *)*piVar7 == (int *)0x0) {
    iVar8 = param_6[2];
    param_6[2] = (int)piVar4;
    *piVar4 = iVar8;
    if (iVar8 != 0) {
      *(int **)(iVar3 + (*(uint *)(iVar8 + 0x2c) % (uint)param_6[1]) * 4) = piVar4;
    }
    *piVar7 = (int)(param_6 + 2);
  }
  else {
    *piVar4 = *(int *)*piVar7;
    *(int **)*piVar7 = piVar4;
  }
  param_6[3] = param_6[3] + 1;
  if (local_44 == &local_3c) {
    return;
  }
  FUN_001807a0(local_44);
  return;
}

