
/* DWARF original prototype: Dwarf_pubnames_table * map_pubtable_to_dies(Gdb_index * this, uint
   attr, Gdb_index_info_reader * dwinfo, Relobj * object, uchar * symbols, off_t symbols_size) */

Dwarf_pubnames_table * __thiscall
gold::Gdb_index::map_pubtable_to_dies
          (Gdb_index *this,uint attr,Gdb_index_info_reader *dwinfo,Relobj *object,uchar *symbols,
          off_t symbols_size)

{
  _Hash_node_base *__code;
  ulong uVar1;
  _Hash_node_base *p_Var2;
  bool bVar3;
  Dwarf_pubnames_table *this_00;
  __node_type *__node;
  __bucket_type p_Var4;
  ulong __bkt;
  _Hash_node_base *p_Var5;
  __bucket_type p_Var6;
  long offset;
  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  *this_01;
  
  if (attr == 0x2134) {
    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);
    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
               *)&this->cu_pubname_map_;
    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;
    this_00->buffer_ = (uchar *)0x0;
    this_00->buffer_end_ = (uchar *)0x0;
    this_00->owns_buffer_ = false;
    this_00->offset_size_ = 0;
    this_00->pinfo_ = (uchar *)0x0;
    this_00->end_of_table_ = (uchar *)0x0;
    this_00->is_pubtypes_ = false;
    this_00->is_gnu_style_ = false;
    this_00->unit_length_ = 0;
    this_00->cu_offset_ = 0;
  }
  else {
    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);
    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
               *)&this->cu_pubtype_map_;
    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;
    this_00->buffer_ = (uchar *)0x0;
    this_00->buffer_end_ = (uchar *)0x0;
    this_00->owns_buffer_ = false;
    this_00->offset_size_ = 0;
    this_00->pinfo_ = (uchar *)0x0;
    this_00->end_of_table_ = (uchar *)0x0;
    this_00->is_pubtypes_ = true;
    this_00->is_gnu_style_ = false;
    this_00->unit_length_ = 0;
    this_00->cu_offset_ = 0;
  }
  std::
  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
  ::clear(this_01);
  bVar3 = Dwarf_pubnames_table::read_section(this_00,object,symbols,symbols_size);
  if (bVar3) {
    offset = 0;
    bVar3 = Dwarf_pubnames_table::read_header(this_00,0);
    if (bVar3) {
      do {
        __code = (_Hash_node_base *)this_00->cu_offset_;
        __node = (__node_type *)operator_new(0x18);
        uVar1 = this_01->_M_bucket_count;
        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).
        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;
        *(_Hash_node_base **)
         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.
          _M_storage = __code;
        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)
                         ._M_storage._M_storage + 8) = offset;
        __bkt = (ulong)__code % uVar1;
        p_Var4 = this_01->_M_buckets[__bkt];
        if (p_Var4 != (__bucket_type)0x0) {
          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;
          p_Var6 = p_Var4->_M_nxt;
          while (__code != p_Var5) {
            p_Var2 = p_Var6->_M_nxt;
            if ((p_Var2 == (_Hash_node_base *)0x0) ||
               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,
               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;
          }
          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {
            operator_delete(__node);
            goto LAB_001e8137;
          }
        }
LAB_001e8160:
        std::
        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>
        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);
LAB_001e8137:
        offset = offset + this_00->unit_length_;
        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);
      } while (bVar3);
    }
  }
  else {
    this_00 = (Dwarf_pubnames_table *)0x0;
  }
  return this_00;
}



undefined8 *
FUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,
            undefined8 param_6)

{
  ulong uVar1;
  ulong uVar2;
  long *plVar3;
  char cVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  long *plVar7;
  ulong uVar8;
  ulong uVar9;
  long *plVar10;
  long lVar11;
  long *plVar12;
  
  if (param_2 == 0x2134) {
    puVar5 = (undefined8 *)FUN_00337270(0x58);
    plVar12 = (long *)(param_1 + 0x38);
    *puVar5 = param_3;
    puVar5[1] = 0;
    puVar5[2] = 0;
    *(undefined1 *)(puVar5 + 3) = 0;
    *(undefined4 *)((long)puVar5 + 0x1c) = 0;
    puVar5[4] = 0;
    puVar5[5] = 0;
    *(undefined2 *)(puVar5 + 6) = 0;
    puVar5[7] = 0;
    puVar5[8] = 0;
  }
  else {
    puVar5 = (undefined8 *)FUN_00337270(0x58);
    plVar12 = (long *)(param_1 + 0x70);
    *puVar5 = param_3;
    puVar5[1] = 0;
    puVar5[2] = 0;
    *(undefined1 *)(puVar5 + 3) = 0;
    *(undefined4 *)((long)puVar5 + 0x1c) = 0;
    puVar5[4] = 0;
    puVar5[5] = 0;
    *(undefined2 *)(puVar5 + 6) = 1;
    puVar5[7] = 0;
    puVar5[8] = 0;
  }
  FUN_001e8980(plVar12);
  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);
  if (cVar4 == '\0') {
    puVar5 = (undefined8 *)0x0;
  }
  else {
    lVar11 = 0;
    cVar4 = FUN_00301a40(puVar5,0);
    while (cVar4 != '\0') {
      uVar1 = puVar5[8];
      puVar6 = (undefined8 *)FUN_00337270(0x18);
      uVar2 = plVar12[1];
      *puVar6 = 0;
      puVar6[1] = uVar1;
      puVar6[2] = lVar11;
      uVar8 = uVar1 % uVar2;
      plVar7 = *(long **)(*plVar12 + uVar8 * 8);
      if (plVar7 != (long *)0x0) {
        uVar9 = ((long *)*plVar7)[1];
        plVar10 = (long *)*plVar7;
        while (uVar1 != uVar9) {
          plVar3 = (long *)*plVar10;
          if ((plVar3 == (long *)0x0) ||
             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))
          goto LAB_001e8160;
        }
        if (*plVar7 != 0) {
          FUN_00338a40();
          goto LAB_001e8137;
        }
      }
LAB_001e8160:
      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);
LAB_001e8137:
      lVar11 = lVar11 + puVar5[7];
      cVar4 = FUN_00301a40(puVar5,lVar11);
    }
  }
  return puVar5;
}


PUSH R15
MOV R15,RDX
PUSH R14
MOV R14,R9
PUSH R13
MOV R13,RDI
MOV EDI,0x58
PUSH R12
MOV R12,R8
PUSH RBP
PUSH RBX
MOV RBX,RCX
SUB RSP,0x8
CMP ESI,0x2134
JZ 0x001e8180
CALL 0x00337270
ADD R13,0x70
MOV RBP,RAX
MOV qword ptr [RAX],R15
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],0x0
MOV byte ptr [RAX + 0x18],0x0
MOV dword ptr [RAX + 0x1c],0x0
MOV qword ptr [RAX + 0x20],0x0
MOV qword ptr [RAX + 0x28],0x0
MOV EAX,0x1
MOV word ptr [RBP + 0x30],AX
MOV qword ptr [RBP + 0x38],0x0
MOV qword ptr [RBP + 0x40],0x0
MOV RDI,R13
CALL 0x001e8980
MOV RCX,R14
MOV RDX,R12
MOV RSI,RBX
MOV RDI,RBP
CALL 0x00301830
TEST AL,AL
JZ 0x001e81d8
XOR R12D,R12D
MOV RDI,RBP
MOV RSI,R12
CALL 0x00301a40
TEST AL,AL
JZ 0x001e814e
NOP dword ptr [RAX + RAX*0x1]
MOV RBX,qword ptr [RBP + 0x40]
MOV EDI,0x18
CALL 0x00337270
MOV R9,qword ptr [R13 + 0x8]
XOR EDX,EDX
MOV qword ptr [RAX],0x0
MOV RDI,RAX
MOV qword ptr [RAX + 0x8],RBX
MOV qword ptr [RAX + 0x10],R12
MOV RAX,RBX
DIV R9
MOV RAX,qword ptr [R13]
MOV RCX,qword ptr [RAX + RDX*0x8]
MOV RSI,RDX
TEST RCX,RCX
JZ 0x001e8160
MOV R10,qword ptr [RCX]
MOV R8,qword ptr [R10 + 0x8]
JMP 0x001e8127
MOV RAX,qword ptr [R10]
TEST RAX,RAX
JZ 0x001e8160
MOV R8,qword ptr [RAX + 0x8]
MOV RCX,R10
XOR EDX,EDX
MOV R10,RAX
MOV RAX,R8
DIV R9
CMP RSI,RDX
JNZ 0x001e8160
CMP RBX,R8
JNZ 0x001e8108
CMP qword ptr [RCX],0x0
JZ 0x001e8160
CALL 0x00338a40
ADD R12,qword ptr [RBP + 0x38]
MOV RDI,RBP
MOV RSI,R12
CALL 0x00301a40
TEST AL,AL
JNZ 0x001e80c0
ADD RSP,0x8
MOV RAX,RBP
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RCX,RDI
MOV R8D,0x1
MOV RDX,RBX
MOV RDI,R13
CALL 0x001e96e0
JMP 0x001e8137
CALL 0x00337270
XOR EDX,EDX
ADD R13,0x38
MOV RBP,RAX
MOV qword ptr [RAX],R15
MOV qword ptr [RAX + 0x8],0x0
MOV qword ptr [RAX + 0x10],0x0
MOV byte ptr [RAX + 0x18],0x0
MOV dword ptr [RAX + 0x1c],0x0
MOV qword ptr [RAX + 0x20],0x0
MOV qword ptr [RAX + 0x28],0x0
MOV word ptr [RAX + 0x30],DX
MOV qword ptr [RAX + 0x38],0x0
MOV qword ptr [RAX + 0x40],0x0
JMP 0x001e8081
XOR EBP,EBP
JMP 0x001e814e
(translation_unit "undefined8 *\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}\n\n" (function_definition "undefined8 *\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}" type_identifier (pointer_declarator "*\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" * (function_declarator "FUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" identifier (parameter_list "(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) )))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (if_statement "if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" if (parenthesized_expression "(param_2 == 0x2134)" ( (binary_expression "param_2 == 0x2134" identifier == number_literal) )) (compound_statement "{\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" { (expression_statement "puVar5 = (undefined8 *)FUN_00337270(0x58);" (assignment_expression "puVar5 = (undefined8 *)FUN_00337270(0x58)" identifier = (cast_expression "(undefined8 *)FUN_00337270(0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337270(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "plVar12 = (long *)(param_1 + 0x38);" (assignment_expression "plVar12 = (long *)(param_1 + 0x38)" identifier = (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) ;) (expression_statement "*puVar5 = param_3;" (assignment_expression "*puVar5 = param_3" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar5 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar5 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar5 + 3)" * (cast_expression "(undefined1 *)(puVar5 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x1c)" ( (binary_expression "(long)puVar5 + 0x1c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 6) = 0;" (assignment_expression "*(undefined2 *)(puVar5 + 6) = 0" (pointer_expression "*(undefined2 *)(puVar5 + 6)" * (cast_expression "(undefined2 *)(puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" else (compound_statement "{\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" { (expression_statement "puVar5 = (undefined8 *)FUN_00337270(0x58);" (assignment_expression "puVar5 = (undefined8 *)FUN_00337270(0x58)" identifier = (cast_expression "(undefined8 *)FUN_00337270(0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337270(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "plVar12 = (long *)(param_1 + 0x70);" (assignment_expression "plVar12 = (long *)(param_1 + 0x70)" identifier = (cast_expression "(long *)(param_1 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) ;) (expression_statement "*puVar5 = param_3;" (assignment_expression "*puVar5 = param_3" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar5 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar5 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar5 + 3)" * (cast_expression "(undefined1 *)(puVar5 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x1c)" ( (binary_expression "(long)puVar5 + 0x1c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 6) = 1;" (assignment_expression "*(undefined2 *)(puVar5 + 6) = 1" (pointer_expression "*(undefined2 *)(puVar5 + 6)" * (cast_expression "(undefined2 *)(puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "FUN_001e8980(plVar12);" (call_expression "FUN_001e8980(plVar12)" identifier (argument_list "(plVar12)" ( identifier ))) ;) (expression_statement "cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);" (assignment_expression "cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6)" identifier = (call_expression "FUN_00301830(puVar5,param_4,param_5,param_6)" identifier (argument_list "(puVar5,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar5 = (undefined8 *)0x0;\n  }" { (expression_statement "puVar5 = (undefined8 *)0x0;" (assignment_expression "puVar5 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" else (compound_statement "{\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = FUN_00301a40(puVar5,0);" (assignment_expression "cVar4 = FUN_00301a40(puVar5,0)" identifier = (call_expression "FUN_00301a40(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) ;) (while_statement "while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }" while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }" { (expression_statement "uVar1 = puVar5[8];" (assignment_expression "uVar1 = puVar5[8]" identifier = (subscript_expression "puVar5[8]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined8 *)FUN_00337270(0x18);" (assignment_expression "puVar6 = (undefined8 *)FUN_00337270(0x18)" identifier = (cast_expression "(undefined8 *)FUN_00337270(0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337270(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "uVar2 = plVar12[1];" (assignment_expression "uVar2 = plVar12[1]" identifier = (subscript_expression "plVar12[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = uVar1;" (assignment_expression "puVar6[1] = uVar1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = lVar11;" (assignment_expression "puVar6[2] = lVar11" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = uVar1 % uVar2;" (assignment_expression "uVar8 = uVar1 % uVar2" identifier = (binary_expression "uVar1 % uVar2" identifier % identifier)) ;) (expression_statement "plVar7 = *(long **)(*plVar12 + uVar8 * 8);" (assignment_expression "plVar7 = *(long **)(*plVar12 + uVar8 * 8)" identifier = (pointer_expression "*(long **)(*plVar12 + uVar8 * 8)" * (cast_expression "(long **)(*plVar12 + uVar8 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + uVar8 * 8)" ( (binary_expression "*plVar12 + uVar8 * 8" (pointer_expression "*plVar12" * identifier) + (binary_expression "uVar8 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }" if (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }" { (expression_statement "uVar9 = ((long *)*plVar7)[1];" (assignment_expression "uVar9 = ((long *)*plVar7)[1]" identifier = (subscript_expression "((long *)*plVar7)[1]" (parenthesized_expression "((long *)*plVar7)" ( (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar10 = (long *)*plVar7;" (assignment_expression "plVar10 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (while_statement "while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }" while (parenthesized_expression "(uVar1 != uVar9)" ( (binary_expression "uVar1 != uVar9" identifier != identifier) )) (compound_statement "{\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }" { (expression_statement "plVar3 = (long *)*plVar10;" (assignment_expression "plVar3 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (if_statement "if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;" if (parenthesized_expression "((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))" ( (binary_expression "(plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2)" (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2)" ( (comma_expression "uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "uVar9 = plVar3[1]" identifier = (subscript_expression "plVar3[1]" identifier [ number_literal ])) , (comma_expression "plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "plVar7 = plVar10" identifier = identifier) , (comma_expression "plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "plVar10 = plVar3" identifier = identifier) , (binary_expression "uVar8 != uVar9 % uVar2" identifier != (binary_expression "uVar9 % uVar2" identifier % identifier))))) ))) )) (goto_statement "goto LAB_001e8160;" goto statement_identifier ;)) })) (if_statement "if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }" if (parenthesized_expression "(*plVar7 != 0)" ( (binary_expression "*plVar7 != 0" (pointer_expression "*plVar7" * identifier) != number_literal) )) (compound_statement "{\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001e8137;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);" statement_identifier : (expression_statement "FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);" (call_expression "FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1)" identifier (argument_list "(plVar12,uVar8,uVar1,puVar6,1)" ( identifier , identifier , identifier , identifier , number_literal ))) ;)) (labeled_statement "LAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];" statement_identifier : (expression_statement "lVar11 = lVar11 + puVar5[7];" (assignment_expression "lVar11 = lVar11 + puVar5[7]" identifier = (binary_expression "lVar11 + puVar5[7]" identifier + (subscript_expression "puVar5[7]" identifier [ number_literal ]))) ;)) (expression_statement "cVar4 = FUN_00301a40(puVar5,lVar11);" (assignment_expression "cVar4 = FUN_00301a40(puVar5,lVar11)" identifier = (call_expression "FUN_00301a40(puVar5,lVar11)" identifier (argument_list "(puVar5,lVar11)" ( identifier , identifier )))) ;) })) }))) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: Dwarf_pubnames_table * map_pubtable_to_dies(Gdb_index * this, uint\n   attr, Gdb_index_info_reader * dwinfo, Relobj * object, uchar * symbols, off_t symbols_size) */\n\nDwarf_pubnames_table * __thiscall\ngold::Gdb_index::map_pubtable_to_dies\n          (Gdb_index *this,uint attr,Gdb_index_info_reader *dwinfo,Relobj *object,uchar *symbols,\n          off_t symbols_size)\n\n{\n  _Hash_node_base *__code;\n  ulong uVar1;\n  _Hash_node_base *p_Var2;\n  bool bVar3;\n  Dwarf_pubnames_table *this_00;\n  __node_type *__node;\n  __bucket_type p_Var4;\n  ulong __bkt;\n  _Hash_node_base *p_Var5;\n  __bucket_type p_Var6;\n  long offset;\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *this_01;\n  \n  if (attr == 0x2134) {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = false;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }\n  else {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = true;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }\n  std::\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::clear(this_01);\n  bVar3 = Dwarf_pubnames_table::read_section(this_00,object,symbols,symbols_size);\n  if (bVar3) {\n    offset = 0;\n    bVar3 = Dwarf_pubnames_table::read_header(this_00,0);\n    if (bVar3) {\n      do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);\n    }\n  }\n  else {\n    this_00 = (Dwarf_pubnames_table *)0x0;\n  }\n  return this_00;\n}\n\n" comment (ERROR "Dwarf_pubnames_table * __thiscall\ngold::Gdb_index::map_pubtable_to_dies\n          (Gdb_index *this,uint attr,Gdb_index_info_reader *dwinfo,Relobj *object,uchar *symbols,\n          off_t symbols_size)" (binary_expression "Dwarf_pubnames_table * __thiscall\ngold::Gdb_index::map_pubtable_to_dies\n          (Gdb_index *this,uint attr,Gdb_index_info_reader *dwinfo,Relobj *object,uchar *symbols,\n          off_t symbols_size)" identifier * (call_expression "__thiscall\ngold::Gdb_index::map_pubtable_to_dies\n          (Gdb_index *this,uint attr,Gdb_index_info_reader *dwinfo,Relobj *object,uchar *symbols,\n          off_t symbols_size)" identifier (ERROR "gold::Gdb_index::map_pubtable_to_dies" identifier : : identifier : : identifier) (argument_list "(Gdb_index *this,uint attr,Gdb_index_info_reader *dwinfo,Relobj *object,uchar *symbols,\n          off_t symbols_size)" ( (binary_expression "Gdb_index *this" identifier * identifier) , identifier (ERROR "attr" identifier) , (binary_expression "Gdb_index_info_reader *dwinfo" identifier * identifier) , (binary_expression "Relobj *object" identifier * identifier) , (binary_expression "uchar *symbols" identifier * identifier) , (ERROR "off_t" identifier) identifier ))))) (compound_statement "{\n  _Hash_node_base *__code;\n  ulong uVar1;\n  _Hash_node_base *p_Var2;\n  bool bVar3;\n  Dwarf_pubnames_table *this_00;\n  __node_type *__node;\n  __bucket_type p_Var4;\n  ulong __bkt;\n  _Hash_node_base *p_Var5;\n  __bucket_type p_Var6;\n  long offset;\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *this_01;\n  \n  if (attr == 0x2134) {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = false;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }\n  else {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = true;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }\n  std::\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  ::clear(this_01);\n  bVar3 = Dwarf_pubnames_table::read_section(this_00,object,symbols,symbols_size);\n  if (bVar3) {\n    offset = 0;\n    bVar3 = Dwarf_pubnames_table::read_header(this_00,0);\n    if (bVar3) {\n      do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);\n    }\n  }\n  else {\n    this_00 = (Dwarf_pubnames_table *)0x0;\n  }\n  return this_00;\n}" { (declaration "_Hash_node_base *__code;" type_identifier (pointer_declarator "*__code" * identifier) ;) (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "Dwarf_pubnames_table *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "__node_type *__node;" type_identifier (pointer_declarator "*__node" * identifier) ;) (declaration "__bucket_type p_Var4;" type_identifier identifier ;) (declaration "ulong __bkt;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var5;" type_identifier (pointer_declarator "*p_Var5" * identifier) ;) (declaration "__bucket_type p_Var6;" type_identifier identifier ;) (declaration "long offset;" (sized_type_specifier "long" long) identifier ;) (ERROR "_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::" (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_long_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>_>,_std" (binary_expression "_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_int>,_std" (binary_expression "hash<long_int" identifier < identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n  *this_01;" 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<false,_false,_true>_>\n  *this_01;" 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<false,_false,_true>_>\n  *this_01;" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<false,_false,_true>_>\n  *this_01;" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  *this_01;" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  *this_01" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  *this_01" identifier , (binary_expression "_true>_>\n  *this_01" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*this_01" * identifier)))) ;))))) (if_statement "if (attr == 0x2134) {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = false;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }\n  else {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = true;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }" if (parenthesized_expression "(attr == 0x2134)" ( (binary_expression "attr == 0x2134" identifier == number_literal) )) (compound_statement "{\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = false;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }" { (expression_statement "this_00 = (Dwarf_pubnames_table *)operator_new(0x58);" (assignment_expression "this_00 = (Dwarf_pubnames_table *)operator_new(0x58)" identifier = (cast_expression "(Dwarf_pubnames_table *)operator_new(0x58)" ( (type_descriptor "Dwarf_pubnames_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_;" (assignment_expression "this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_" identifier = (binary_expression "(_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubname_map_" (parenthesized_expression "(_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)" ( (ERROR "_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_long_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>_>,_std" (binary_expression "_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int>,_std" (binary_expression "equal_to<long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_int>,_std" (binary_expression "hash<long_int" 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<false,_false,_true>_>\n               *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n               *" identifier , (binary_expression "_true>_>\n               *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->cu_pubname_map_" identifier -> field_identifier))) ;) (expression_statement "this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;" (assignment_expression "this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader" (field_expression "this_00->dwinfo_" identifier -> field_identifier) = (pointer_expression "&dwinfo->super_Dwarf_info_reader" & (field_expression "dwinfo->super_Dwarf_info_reader" identifier -> field_identifier))) ;) (expression_statement "this_00->buffer_ = (uchar *)0x0;" (assignment_expression "this_00->buffer_ = (uchar *)0x0" (field_expression "this_00->buffer_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->buffer_end_ = (uchar *)0x0;" (assignment_expression "this_00->buffer_end_ = (uchar *)0x0" (field_expression "this_00->buffer_end_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->owns_buffer_ = false;" (assignment_expression "this_00->owns_buffer_ = false" (field_expression "this_00->owns_buffer_" identifier -> field_identifier) = false) ;) (expression_statement "this_00->offset_size_ = 0;" (assignment_expression "this_00->offset_size_ = 0" (field_expression "this_00->offset_size_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this_00->pinfo_ = (uchar *)0x0;" (assignment_expression "this_00->pinfo_ = (uchar *)0x0" (field_expression "this_00->pinfo_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->end_of_table_ = (uchar *)0x0;" (assignment_expression "this_00->end_of_table_ = (uchar *)0x0" (field_expression "this_00->end_of_table_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->is_pubtypes_ = false;" (assignment_expression "this_00->is_pubtypes_ = false" (field_expression "this_00->is_pubtypes_" identifier -> field_identifier) = false) ;) (expression_statement "this_00->is_gnu_style_ = false;" (assignment_expression "this_00->is_gnu_style_ = false" (field_expression "this_00->is_gnu_style_" identifier -> field_identifier) = false) ;) (expression_statement "this_00->unit_length_ = 0;" (assignment_expression "this_00->unit_length_ = 0" (field_expression "this_00->unit_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this_00->cu_offset_ = 0;" (assignment_expression "this_00->cu_offset_ = 0" (field_expression "this_00->cu_offset_" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = true;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }" else (compound_statement "{\n    this_00 = (Dwarf_pubnames_table *)operator_new(0x58);\n    this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_;\n    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;\n    this_00->buffer_ = (uchar *)0x0;\n    this_00->buffer_end_ = (uchar *)0x0;\n    this_00->owns_buffer_ = false;\n    this_00->offset_size_ = 0;\n    this_00->pinfo_ = (uchar *)0x0;\n    this_00->end_of_table_ = (uchar *)0x0;\n    this_00->is_pubtypes_ = true;\n    this_00->is_gnu_style_ = false;\n    this_00->unit_length_ = 0;\n    this_00->cu_offset_ = 0;\n  }" { (expression_statement "this_00 = (Dwarf_pubnames_table *)operator_new(0x58);" (assignment_expression "this_00 = (Dwarf_pubnames_table *)operator_new(0x58)" identifier = (cast_expression "(Dwarf_pubnames_table *)operator_new(0x58)" ( (type_descriptor "Dwarf_pubnames_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_;" (assignment_expression "this_01 = (_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_" identifier = (binary_expression "(_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)&this->cu_pubtype_map_" (parenthesized_expression "(_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n               *)" ( (ERROR "_Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_long_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>_>,_std" (binary_expression "_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : identifier : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int>,_std" (binary_expression "equal_to<long_int" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<long_int>,_std" (binary_expression "hash<long_int" 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<false,_false,_true>_>\n               *" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n               *" identifier , (binary_expression "_true>_>\n               *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) & (field_expression "this->cu_pubtype_map_" identifier -> field_identifier))) ;) (expression_statement "this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;" (assignment_expression "this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader" (field_expression "this_00->dwinfo_" identifier -> field_identifier) = (pointer_expression "&dwinfo->super_Dwarf_info_reader" & (field_expression "dwinfo->super_Dwarf_info_reader" identifier -> field_identifier))) ;) (expression_statement "this_00->buffer_ = (uchar *)0x0;" (assignment_expression "this_00->buffer_ = (uchar *)0x0" (field_expression "this_00->buffer_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->buffer_end_ = (uchar *)0x0;" (assignment_expression "this_00->buffer_end_ = (uchar *)0x0" (field_expression "this_00->buffer_end_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->owns_buffer_ = false;" (assignment_expression "this_00->owns_buffer_ = false" (field_expression "this_00->owns_buffer_" identifier -> field_identifier) = false) ;) (expression_statement "this_00->offset_size_ = 0;" (assignment_expression "this_00->offset_size_ = 0" (field_expression "this_00->offset_size_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this_00->pinfo_ = (uchar *)0x0;" (assignment_expression "this_00->pinfo_ = (uchar *)0x0" (field_expression "this_00->pinfo_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->end_of_table_ = (uchar *)0x0;" (assignment_expression "this_00->end_of_table_ = (uchar *)0x0" (field_expression "this_00->end_of_table_" identifier -> field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this_00->is_pubtypes_ = true;" (assignment_expression "this_00->is_pubtypes_ = true" (field_expression "this_00->is_pubtypes_" identifier -> field_identifier) = true) ;) (expression_statement "this_00->is_gnu_style_ = false;" (assignment_expression "this_00->is_gnu_style_ = false" (field_expression "this_00->is_gnu_style_" identifier -> field_identifier) = false) ;) (expression_statement "this_00->unit_length_ = 0;" (assignment_expression "this_00->unit_length_ = 0" (field_expression "this_00->unit_length_" identifier -> field_identifier) = number_literal) ;) (expression_statement "this_00->cu_offset_ = 0;" (assignment_expression "this_00->cu_offset_ = 0" (field_expression "this_00->cu_offset_" identifier -> field_identifier) = number_literal) ;) }))) (ERROR "std::\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "std::\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std" identifier (ERROR "::\n  _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>" : : (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_long_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>_>,_std" (binary_expression "_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_int" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : :) (expression_statement "_Hashtable_traits<false,_false,_true>_>\n  ::clear(this_01);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n  ::clear(this_01)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n  ::clear(this_01)" identifier , (binary_expression "_true>_>\n  ::clear(this_01)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "clear(this_01)" identifier (argument_list "(this_01)" ( identifier )))))) ;) (ERROR "bVar3 = Dwarf_pubnames_table::" (assignment_expression "bVar3 = Dwarf_pubnames_table" identifier = identifier) : :) (expression_statement "read_section(this_00,object,symbols,symbols_size);" (call_expression "read_section(this_00,object,symbols,symbols_size)" identifier (argument_list "(this_00,object,symbols,symbols_size)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (bVar3) {\n    offset = 0;\n    bVar3 = Dwarf_pubnames_table::read_header(this_00,0);\n    if (bVar3) {\n      do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);\n    }\n  }\n  else {\n    this_00 = (Dwarf_pubnames_table *)0x0;\n  }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n    offset = 0;\n    bVar3 = Dwarf_pubnames_table::read_header(this_00,0);\n    if (bVar3) {\n      do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);\n    }\n  }" { (expression_statement "offset = 0;" (assignment_expression "offset = 0" identifier = number_literal) ;) (ERROR "bVar3 = Dwarf_pubnames_table::" (assignment_expression "bVar3 = Dwarf_pubnames_table" identifier = identifier) : :) (expression_statement "read_header(this_00,0);" (call_expression "read_header(this_00,0)" identifier (argument_list "(this_00,0)" ( identifier , number_literal ))) ;) (if_statement "if (bVar3) {\n      do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);\n    }" { (do_statement "do {\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      } while (bVar3);" do (compound_statement "{\n        __code = (_Hash_node_base *)this_00->cu_offset_;\n        __node = (__node_type *)operator_new(0x18);\n        uVar1 = this_01->_M_bucket_count;\n        (__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;\n        *(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;\n        *(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;\n        __bkt = (ulong)__code % uVar1;\n        p_Var4 = this_01->_M_buckets[__bkt];\n        if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }\nLAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);\nLAB_001e8137:\n        offset = offset + this_00->unit_length_;\n        bVar3 = Dwarf_pubnames_table::read_header(this_00,offset);\n      }" { (expression_statement "__code = (_Hash_node_base *)this_00->cu_offset_;" (assignment_expression "__code = (_Hash_node_base *)this_00->cu_offset_" identifier = (cast_expression "(_Hash_node_base *)this_00->cu_offset_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this_00->cu_offset_" identifier -> field_identifier))) ;) (expression_statement "__node = (__node_type *)operator_new(0x18);" (assignment_expression "__node = (__node_type *)operator_new(0x18)" identifier = (cast_expression "(__node_type *)operator_new(0x18)" ( (type_descriptor "__node_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "uVar1 = this_01->_M_bucket_count;" (assignment_expression "uVar1 = this_01->_M_bucket_count" identifier = (field_expression "this_01->_M_bucket_count" identifier -> field_identifier)) ;) (expression_statement "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt = (_Hash_node_base *)0x0" (field_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base._M_nxt" (field_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>).\n        super__Hash_node_base" (parenthesized_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)" ( (comma_expression "__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_" (binary_expression "__node->super__Hash_node_value_base<std::pair<long_int_const" (binary_expression "__node->super__Hash_node_value_base<std" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code;" (assignment_expression "*(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage = __code" (pointer_expression "*(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage" * (cast_expression "(_Hash_node_base **)\n         &(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage" ( (type_descriptor "_Hash_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage" & (field_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage.\n          _M_storage" (field_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)._M_storage" (parenthesized_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)" ( (comma_expression "__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_" (binary_expression "__node->super__Hash_node_value_base<std::pair<long_int_const" (binary_expression "__node->super__Hash_node_value_base<std" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier)))) = identifier) ;) (expression_statement "*(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset;" (assignment_expression "*(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8) = offset" (pointer_expression "*(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8)" * (cast_expression "(long *)((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8)" ( (binary_expression "(long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage + 8" (cast_expression "(long)&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage" & (field_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage._M_storage" (field_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)\n                         ._M_storage" (parenthesized_expression "(__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_>)" ( (comma_expression "__node->super__Hash_node_value_base<std::pair<long_int_const,_long_int>_" (binary_expression "__node->super__Hash_node_value_base<std::pair<long_int_const" (binary_expression "__node->super__Hash_node_value_base<std" (field_expression "__node->super__Hash_node_value_base" identifier -> field_identifier) < identifier) (ERROR "::pair" : : identifier) < identifier) , (binary_expression "_long_int>_" identifier > identifier)) (ERROR ">" >) )) . field_identifier) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "__bkt = (ulong)__code % uVar1;" (assignment_expression "__bkt = (ulong)__code % uVar1" identifier = (binary_expression "(ulong)__code % uVar1" (cast_expression "(ulong)__code" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var4 = this_01->_M_buckets[__bkt];" (assignment_expression "p_Var4 = this_01->_M_buckets[__bkt]" identifier = (subscript_expression "this_01->_M_buckets[__bkt]" (field_expression "this_01->_M_buckets" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (p_Var4 != (__bucket_type)0x0) {\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }" if (parenthesized_expression "(p_Var4 != (__bucket_type)0x0)" ( (binary_expression "p_Var4 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n          p_Var5 = p_Var4->_M_nxt[1]._M_nxt;\n          p_Var6 = p_Var4->_M_nxt;\n          while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }\n          if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }\n        }" { (expression_statement "p_Var5 = p_Var4->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var5 = p_Var4->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var4->_M_nxt[1]._M_nxt" (subscript_expression "p_Var4->_M_nxt[1]" (field_expression "p_Var4->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var6 = p_Var4->_M_nxt;" (assignment_expression "p_Var6 = p_Var4->_M_nxt" identifier = (field_expression "p_Var4->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (__code != p_Var5) {\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }" while (parenthesized_expression "(__code != p_Var5)" ( (binary_expression "__code != p_Var5" identifier != identifier) )) (compound_statement "{\n            p_Var2 = p_Var6->_M_nxt;\n            if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;\n          }" { (expression_statement "p_Var2 = p_Var6->_M_nxt;" (assignment_expression "p_Var2 = p_Var6->_M_nxt" identifier = (field_expression "p_Var6->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)) goto LAB_001e8160;" if (parenthesized_expression "((p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1))" ( (binary_expression "(p_Var2 == (_Hash_node_base *)0x0) ||\n               (p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)" (parenthesized_expression "(p_Var2 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var2 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1)" ( (comma_expression "p_Var5 = p_Var2[1]._M_nxt, p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1" (assignment_expression "p_Var5 = p_Var2[1]._M_nxt" identifier = (field_expression "p_Var2[1]._M_nxt" (subscript_expression "p_Var2[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var4 = p_Var6, p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1" (assignment_expression "p_Var4 = p_Var6" identifier = identifier) , (comma_expression "p_Var6 = p_Var2,\n               __bkt != (ulong)p_Var5 % uVar1" (assignment_expression "p_Var6 = p_Var2" identifier = identifier) , (binary_expression "__bkt != (ulong)p_Var5 % uVar1" identifier != (binary_expression "(ulong)p_Var5 % uVar1" (cast_expression "(ulong)p_Var5" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier))))) ))) )) (goto_statement "goto LAB_001e8160;" goto statement_identifier ;)) })) (if_statement "if (p_Var4->_M_nxt != (_Hash_node_base *)0x0) {\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }" if (parenthesized_expression "(p_Var4->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var4->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            operator_delete(__node);\n            goto LAB_001e8137;\n          }" { (expression_statement "operator_delete(__node);" (call_expression "operator_delete(__node)" identifier (argument_list "(__node)" ( identifier ))) ;) (goto_statement "goto LAB_001e8137;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001e8160:\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);" statement_identifier (ERROR ":\n        std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail:" : (comma_expression "std::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std" identifier (ERROR "::\n        _Hashtable<long_int,_std::pair<long_int_const,_long_int>,_std::allocator<std::pair<long_int_const,_long_int>_>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>" : : (comma_expression "_Hashtable<long_int,_std" (binary_expression "_Hashtable<long_int" identifier < identifier) , identifier) : : (comma_expression "pair<long_int_const,_long_int>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>,_std" identifier > (ERROR "," ,) identifier)) : : (binary_expression "allocator<std" identifier < identifier) : : (comma_expression "pair<long_int_const,_long_int>_>,_std" (binary_expression "pair<long_int_const" identifier < identifier) , (binary_expression "_long_int>_>,_std" (binary_expression "_long_int>_" identifier > identifier) > (ERROR "," ,) identifier)) : : (comma_expression "__detail::_Select1st,_std::equal_to<long_int>,_std" identifier (ERROR "::_Select1st,_std::equal_to<long_int>" : : (comma_expression "_Select1st,_std" identifier , identifier) : : (binary_expression "equal_to<long_int" identifier < identifier) >) , identifier) : : (binary_expression "hash<long_int" identifier < identifier) >) , identifier) : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier : : identifier , identifier : : identifier :) : (expression_statement "_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1);" (comma_expression "_Hashtable_traits<false,_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1)" (binary_expression "_Hashtable_traits<false" identifier < false) , (comma_expression "_false,_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1)" identifier , (binary_expression "_true>_>\n        ::_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_insert_unique_node(this_01,__bkt,(__hash_code)__code,__node,1)" identifier (argument_list "(this_01,__bkt,(__hash_code)__code,__node,1)" ( identifier , identifier , (cast_expression "(__hash_code)__code" ( (type_descriptor "__hash_code" type_identifier) ) identifier) , identifier , number_literal )))))) ;)) (labeled_statement "LAB_001e8137:\n        offset = offset + this_00->unit_length_;" statement_identifier : (expression_statement "offset = offset + this_00->unit_length_;" (assignment_expression "offset = offset + this_00->unit_length_" identifier = (binary_expression "offset + this_00->unit_length_" identifier + (field_expression "this_00->unit_length_" identifier -> field_identifier))) ;)) (ERROR "bVar3 = Dwarf_pubnames_table::" (assignment_expression "bVar3 = Dwarf_pubnames_table" identifier = identifier) : :) (expression_statement "read_header(this_00,offset);" (call_expression "read_header(this_00,offset)" identifier (argument_list "(this_00,offset)" ( identifier , identifier ))) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) })) }) (else_clause "else {\n    this_00 = (Dwarf_pubnames_table *)0x0;\n  }" else (compound_statement "{\n    this_00 = (Dwarf_pubnames_table *)0x0;\n  }" { (expression_statement "this_00 = (Dwarf_pubnames_table *)0x0;" (assignment_expression "this_00 = (Dwarf_pubnames_table *)0x0" identifier = (cast_expression "(Dwarf_pubnames_table *)0x0" ( (type_descriptor "Dwarf_pubnames_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (return_statement "return this_00;" return identifier ;) }))
(translation_unit "undefined8 *\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}\n\n" (function_definition "undefined8 *\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}" type_identifier (pointer_declarator "*\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" * (function_declarator "FUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" identifier (parameter_list "(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) )))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "undefined8 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "long *plVar7;" (sized_type_specifier "long" long) (pointer_declarator "*plVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar12;" (sized_type_specifier "long" long) (pointer_declarator "*plVar12" * identifier) ;) (if_statement "if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" if (parenthesized_expression "(param_2 == 0x2134)" ( (binary_expression "param_2 == 0x2134" identifier == number_literal) )) (compound_statement "{\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" { (expression_statement "puVar5 = (undefined8 *)FUN_00337270(0x58);" (assignment_expression "puVar5 = (undefined8 *)FUN_00337270(0x58)" identifier = (cast_expression "(undefined8 *)FUN_00337270(0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337270(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "plVar12 = (long *)(param_1 + 0x38);" (assignment_expression "plVar12 = (long *)(param_1 + 0x38)" identifier = (cast_expression "(long *)(param_1 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) ;) (expression_statement "*puVar5 = param_3;" (assignment_expression "*puVar5 = param_3" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar5 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar5 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar5 + 3)" * (cast_expression "(undefined1 *)(puVar5 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x1c)" ( (binary_expression "(long)puVar5 + 0x1c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 6) = 0;" (assignment_expression "*(undefined2 *)(puVar5 + 6) = 0" (pointer_expression "*(undefined2 *)(puVar5 + 6)" * (cast_expression "(undefined2 *)(puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" else (compound_statement "{\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" { (expression_statement "puVar5 = (undefined8 *)FUN_00337270(0x58);" (assignment_expression "puVar5 = (undefined8 *)FUN_00337270(0x58)" identifier = (cast_expression "(undefined8 *)FUN_00337270(0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337270(0x58)" identifier (argument_list "(0x58)" ( number_literal ))))) ;) (expression_statement "plVar12 = (long *)(param_1 + 0x70);" (assignment_expression "plVar12 = (long *)(param_1 + 0x70)" identifier = (cast_expression "(long *)(param_1 + 0x70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) )))) ;) (expression_statement "*puVar5 = param_3;" (assignment_expression "*puVar5 = param_3" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar5 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar5 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar5 + 3)" * (cast_expression "(undefined1 *)(puVar5 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((long)puVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar5 + 0x1c)" ( (binary_expression "(long)puVar5 + 0x1c" (cast_expression "(long)puVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined2 *)(puVar5 + 6) = 1;" (assignment_expression "*(undefined2 *)(puVar5 + 6) = 1" (pointer_expression "*(undefined2 *)(puVar5 + 6)" * (cast_expression "(undefined2 *)(puVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + 6)" ( (binary_expression "puVar5 + 6" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "FUN_001e8980(plVar12);" (call_expression "FUN_001e8980(plVar12)" identifier (argument_list "(plVar12)" ( identifier ))) ;) (expression_statement "cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);" (assignment_expression "cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6)" identifier = (call_expression "FUN_00301830(puVar5,param_4,param_5,param_6)" identifier (argument_list "(puVar5,param_4,param_5,param_6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar5 = (undefined8 *)0x0;\n  }" { (expression_statement "puVar5 = (undefined8 *)0x0;" (assignment_expression "puVar5 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" else (compound_statement "{\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" { (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = FUN_00301a40(puVar5,0);" (assignment_expression "cVar4 = FUN_00301a40(puVar5,0)" identifier = (call_expression "FUN_00301a40(puVar5,0)" identifier (argument_list "(puVar5,0)" ( identifier , number_literal )))) ;) (while_statement "while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }" while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }" { (expression_statement "uVar1 = puVar5[8];" (assignment_expression "uVar1 = puVar5[8]" identifier = (subscript_expression "puVar5[8]" identifier [ number_literal ])) ;) (expression_statement "puVar6 = (undefined8 *)FUN_00337270(0x18);" (assignment_expression "puVar6 = (undefined8 *)FUN_00337270(0x18)" identifier = (cast_expression "(undefined8 *)FUN_00337270(0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00337270(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "uVar2 = plVar12[1];" (assignment_expression "uVar2 = plVar12[1]" identifier = (subscript_expression "plVar12[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = uVar1;" (assignment_expression "puVar6[1] = uVar1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[2] = lVar11;" (assignment_expression "puVar6[2] = lVar11" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = uVar1 % uVar2;" (assignment_expression "uVar8 = uVar1 % uVar2" identifier = (binary_expression "uVar1 % uVar2" identifier % identifier)) ;) (expression_statement "plVar7 = *(long **)(*plVar12 + uVar8 * 8);" (assignment_expression "plVar7 = *(long **)(*plVar12 + uVar8 * 8)" identifier = (pointer_expression "*(long **)(*plVar12 + uVar8 * 8)" * (cast_expression "(long **)(*plVar12 + uVar8 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar12 + uVar8 * 8)" ( (binary_expression "*plVar12 + uVar8 * 8" (pointer_expression "*plVar12" * identifier) + (binary_expression "uVar8 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }" if (parenthesized_expression "(plVar7 != (long *)0x0)" ( (binary_expression "plVar7 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }" { (expression_statement "uVar9 = ((long *)*plVar7)[1];" (assignment_expression "uVar9 = ((long *)*plVar7)[1]" identifier = (subscript_expression "((long *)*plVar7)[1]" (parenthesized_expression "((long *)*plVar7)" ( (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier)) )) [ number_literal ])) ;) (expression_statement "plVar10 = (long *)*plVar7;" (assignment_expression "plVar10 = (long *)*plVar7" identifier = (cast_expression "(long *)*plVar7" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar7" * identifier))) ;) (while_statement "while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }" while (parenthesized_expression "(uVar1 != uVar9)" ( (binary_expression "uVar1 != uVar9" identifier != identifier) )) (compound_statement "{\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }" { (expression_statement "plVar3 = (long *)*plVar10;" (assignment_expression "plVar3 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (if_statement "if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;" if (parenthesized_expression "((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))" ( (binary_expression "(plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2)" (parenthesized_expression "(plVar3 == (long *)0x0)" ( (binary_expression "plVar3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2)" ( (comma_expression "uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "uVar9 = plVar3[1]" identifier = (subscript_expression "plVar3[1]" identifier [ number_literal ])) , (comma_expression "plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "plVar7 = plVar10" identifier = identifier) , (comma_expression "plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "plVar10 = plVar3" identifier = identifier) , (binary_expression "uVar8 != uVar9 % uVar2" identifier != (binary_expression "uVar9 % uVar2" identifier % identifier))))) ))) )) (goto_statement "goto LAB_001e8160;" goto statement_identifier ;)) })) (if_statement "if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }" if (parenthesized_expression "(*plVar7 != 0)" ( (binary_expression "*plVar7 != 0" (pointer_expression "*plVar7" * identifier) != number_literal) )) (compound_statement "{\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }" { (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001e8137;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);" statement_identifier : (expression_statement "FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);" (call_expression "FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1)" identifier (argument_list "(plVar12,uVar8,uVar1,puVar6,1)" ( identifier , identifier , identifier , identifier , number_literal ))) ;)) (labeled_statement "LAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];" statement_identifier : (expression_statement "lVar11 = lVar11 + puVar5[7];" (assignment_expression "lVar11 = lVar11 + puVar5[7]" identifier = (binary_expression "lVar11 + puVar5[7]" identifier + (subscript_expression "puVar5[7]" identifier [ number_literal ]))) ;)) (expression_statement "cVar4 = FUN_00301a40(puVar5,lVar11);" (assignment_expression "cVar4 = FUN_00301a40(puVar5,lVar11)" identifier = (call_expression "FUN_00301a40(puVar5,lVar11)" identifier (argument_list "(puVar5,lVar11)" ( identifier , identifier )))) ;) })) }))) (return_statement "return puVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression IDENT % IDENT))))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) })) }))) (return_statement return IDENT ;) })))
(function_definition "undefined8 *\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)\n\n{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}" (type_identifier "undefined8") (pointer_declarator "*\nFUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" (* "*") (function_declarator "FUN_001e8000(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" (identifier "FUN_001e8000") (parameter_list "(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,\n            undefined8 param_6)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")")))) (compound_statement "{\n  ulong uVar1;\n  ulong uVar2;\n  long *plVar3;\n  char cVar4;\n  undefined8 *puVar5;\n  undefined8 *puVar6;\n  long *plVar7;\n  ulong uVar8;\n  ulong uVar9;\n  long *plVar10;\n  long lVar11;\n  long *plVar12;\n  \n  if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  FUN_001e8980(plVar12);\n  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);\n  if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }\n  return puVar5;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "undefined8 *puVar5;" (type_identifier "undefined8") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "long *plVar7;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "long lVar11;" (sized_type_specifier "long" (long "long")) (identifier "lVar11") (; ";")) (declaration "long *plVar12;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar12" (* "*") (identifier "plVar12")) (; ";")) (if_statement "if (param_2 == 0x2134) {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }\n  else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" (if "if") (parenthesized_expression "(param_2 == 0x2134)" (( "(") (binary_expression "param_2 == 0x2134" (identifier "param_2") (== "==") (number_literal "0x2134")) () ")")) (compound_statement "{\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x38);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 0;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" ({ "{") (expression_statement "puVar5 = (undefined8 *)FUN_00337270(0x58);" (assignment_expression "puVar5 = (undefined8 *)FUN_00337270(0x58)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)FUN_00337270(0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337270(0x58)" (identifier "FUN_00337270") (argument_list "(0x58)" (( "(") (number_literal "0x58") () ")"))))) (; ";")) (expression_statement "plVar12 = (long *)(param_1 + 0x38);" (assignment_expression "plVar12 = (long *)(param_1 + 0x38)" (identifier "plVar12") (= "=") (cast_expression "(long *)(param_1 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "*puVar5 = param_3;" (assignment_expression "*puVar5 = param_3" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar5 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar5 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar5 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar5 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((long)puVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x1c)" (( "(") (binary_expression "(long)puVar5 + 0x1c" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar5 + 6) = 0;" (assignment_expression "*(undefined2 *)(puVar5 + 6) = 0" (pointer_expression "*(undefined2 *)(puVar5 + 6)" (* "*") (cast_expression "(undefined2 *)(puVar5 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 6)" (( "(") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" (else "else") (compound_statement "{\n    puVar5 = (undefined8 *)FUN_00337270(0x58);\n    plVar12 = (long *)(param_1 + 0x70);\n    *puVar5 = param_3;\n    puVar5[1] = 0;\n    puVar5[2] = 0;\n    *(undefined1 *)(puVar5 + 3) = 0;\n    *(undefined4 *)((long)puVar5 + 0x1c) = 0;\n    puVar5[4] = 0;\n    puVar5[5] = 0;\n    *(undefined2 *)(puVar5 + 6) = 1;\n    puVar5[7] = 0;\n    puVar5[8] = 0;\n  }" ({ "{") (expression_statement "puVar5 = (undefined8 *)FUN_00337270(0x58);" (assignment_expression "puVar5 = (undefined8 *)FUN_00337270(0x58)" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)FUN_00337270(0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337270(0x58)" (identifier "FUN_00337270") (argument_list "(0x58)" (( "(") (number_literal "0x58") () ")"))))) (; ";")) (expression_statement "plVar12 = (long *)(param_1 + 0x70);" (assignment_expression "plVar12 = (long *)(param_1 + 0x70)" (identifier "plVar12") (= "=") (cast_expression "(long *)(param_1 + 0x70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")")))) (; ";")) (expression_statement "*puVar5 = param_3;" (assignment_expression "*puVar5 = param_3" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar5[1] = 0;" (assignment_expression "puVar5[1] = 0" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 0;" (assignment_expression "puVar5[2] = 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar5 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar5 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar5 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar5 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 3)" (( "(") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((long)puVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((long)puVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((long)puVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar5 + 0x1c)" (( "(") (binary_expression "(long)puVar5 + 0x1c" (cast_expression "(long)puVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar5")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = 0;" (assignment_expression "puVar5[5] = 0" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined2 *)(puVar5 + 6) = 1;" (assignment_expression "*(undefined2 *)(puVar5 + 6) = 1" (pointer_expression "*(undefined2 *)(puVar5 + 6)" (* "*") (cast_expression "(undefined2 *)(puVar5 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + 6)" (( "(") (binary_expression "puVar5 + 6" (identifier "puVar5") (+ "+") (number_literal "6")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[8] = 0;" (assignment_expression "puVar5[8] = 0" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "FUN_001e8980(plVar12);" (call_expression "FUN_001e8980(plVar12)" (identifier "FUN_001e8980") (argument_list "(plVar12)" (( "(") (identifier "plVar12") () ")"))) (; ";")) (expression_statement "cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);" (assignment_expression "cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6)" (identifier "cVar4") (= "=") (call_expression "FUN_00301830(puVar5,param_4,param_5,param_6)" (identifier "FUN_00301830") (argument_list "(puVar5,param_4,param_5,param_6)" (( "(") (identifier "puVar5") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n    puVar5 = (undefined8 *)0x0;\n  }\n  else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar5 = (undefined8 *)0x0;\n  }" ({ "{") (expression_statement "puVar5 = (undefined8 *)0x0;" (assignment_expression "puVar5 = (undefined8 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" (else "else") (compound_statement "{\n    lVar11 = 0;\n    cVar4 = FUN_00301a40(puVar5,0);\n    while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }\n  }" ({ "{") (expression_statement "lVar11 = 0;" (assignment_expression "lVar11 = 0" (identifier "lVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar4 = FUN_00301a40(puVar5,0);" (assignment_expression "cVar4 = FUN_00301a40(puVar5,0)" (identifier "cVar4") (= "=") (call_expression "FUN_00301a40(puVar5,0)" (identifier "FUN_00301a40") (argument_list "(puVar5,0)" (( "(") (identifier "puVar5") (, ",") (number_literal "0") () ")")))) (; ";")) (while_statement "while (cVar4 != '\0') {\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }" (while "while") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar1 = puVar5[8];\n      puVar6 = (undefined8 *)FUN_00337270(0x18);\n      uVar2 = plVar12[1];\n      *puVar6 = 0;\n      puVar6[1] = uVar1;\n      puVar6[2] = lVar11;\n      uVar8 = uVar1 % uVar2;\n      plVar7 = *(long **)(*plVar12 + uVar8 * 8);\n      if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }\nLAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);\nLAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];\n      cVar4 = FUN_00301a40(puVar5,lVar11);\n    }" ({ "{") (expression_statement "uVar1 = puVar5[8];" (assignment_expression "uVar1 = puVar5[8]" (identifier "uVar1") (= "=") (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar6 = (undefined8 *)FUN_00337270(0x18);" (assignment_expression "puVar6 = (undefined8 *)FUN_00337270(0x18)" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)FUN_00337270(0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00337270(0x18)" (identifier "FUN_00337270") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "uVar2 = plVar12[1];" (assignment_expression "uVar2 = plVar12[1]" (identifier "uVar2") (= "=") (subscript_expression "plVar12[1]" (identifier "plVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[1] = uVar1;" (assignment_expression "puVar6[1] = uVar1" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar6[2] = lVar11;" (assignment_expression "puVar6[2] = lVar11" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "lVar11")) (; ";")) (expression_statement "uVar8 = uVar1 % uVar2;" (assignment_expression "uVar8 = uVar1 % uVar2" (identifier "uVar8") (= "=") (binary_expression "uVar1 % uVar2" (identifier "uVar1") (% "%") (identifier "uVar2"))) (; ";")) (expression_statement "plVar7 = *(long **)(*plVar12 + uVar8 * 8);" (assignment_expression "plVar7 = *(long **)(*plVar12 + uVar8 * 8)" (identifier "plVar7") (= "=") (pointer_expression "*(long **)(*plVar12 + uVar8 * 8)" (* "*") (cast_expression "(long **)(*plVar12 + uVar8 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar12 + uVar8 * 8)" (( "(") (binary_expression "*plVar12 + uVar8 * 8" (pointer_expression "*plVar12" (* "*") (identifier "plVar12")) (+ "+") (binary_expression "uVar8 * 8" (identifier "uVar8") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar7 != (long *)0x0) {\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }" (if "if") (parenthesized_expression "(plVar7 != (long *)0x0)" (( "(") (binary_expression "plVar7 != (long *)0x0" (identifier "plVar7") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar9 = ((long *)*plVar7)[1];\n        plVar10 = (long *)*plVar7;\n        while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }\n        if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }\n      }" ({ "{") (expression_statement "uVar9 = ((long *)*plVar7)[1];" (assignment_expression "uVar9 = ((long *)*plVar7)[1]" (identifier "uVar9") (= "=") (subscript_expression "((long *)*plVar7)[1]" (parenthesized_expression "((long *)*plVar7)" (( "(") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "plVar10 = (long *)*plVar7;" (assignment_expression "plVar10 = (long *)*plVar7" (identifier "plVar10") (= "=") (cast_expression "(long *)*plVar7" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar7" (* "*") (identifier "plVar7")))) (; ";")) (while_statement "while (uVar1 != uVar9) {\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }" (while "while") (parenthesized_expression "(uVar1 != uVar9)" (( "(") (binary_expression "uVar1 != uVar9" (identifier "uVar1") (!= "!=") (identifier "uVar9")) () ")")) (compound_statement "{\n          plVar3 = (long *)*plVar10;\n          if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;\n        }" ({ "{") (expression_statement "plVar3 = (long *)*plVar10;" (assignment_expression "plVar3 = (long *)*plVar10" (identifier "plVar3") (= "=") (cast_expression "(long *)*plVar10" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")))) (; ";")) (if_statement "if ((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))\n          goto LAB_001e8160;" (if "if") (parenthesized_expression "((plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))" (( "(") (binary_expression "(plVar3 == (long *)0x0) ||\n             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2)" (parenthesized_expression "(plVar3 == (long *)0x0)" (( "(") (binary_expression "plVar3 == (long *)0x0" (identifier "plVar3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2)" (( "(") (comma_expression "uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "uVar9 = plVar3[1]" (identifier "uVar9") (= "=") (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "plVar7 = plVar10" (identifier "plVar7") (= "=") (identifier "plVar10")) (, ",") (comma_expression "plVar10 = plVar3, uVar8 != uVar9 % uVar2" (assignment_expression "plVar10 = plVar3" (identifier "plVar10") (= "=") (identifier "plVar3")) (, ",") (binary_expression "uVar8 != uVar9 % uVar2" (identifier "uVar8") (!= "!=") (binary_expression "uVar9 % uVar2" (identifier "uVar9") (% "%") (identifier "uVar2")))))) () ")"))) () ")")) (goto_statement "goto LAB_001e8160;" (goto "goto") (statement_identifier "LAB_001e8160") (; ";"))) (} "}"))) (if_statement "if (*plVar7 != 0) {\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }" (if "if") (parenthesized_expression "(*plVar7 != 0)" (( "(") (binary_expression "*plVar7 != 0" (pointer_expression "*plVar7" (* "*") (identifier "plVar7")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00338a40();\n          goto LAB_001e8137;\n        }" ({ "{") (expression_statement "FUN_00338a40();" (call_expression "FUN_00338a40()" (identifier "FUN_00338a40") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_001e8137;" (goto "goto") (statement_identifier "LAB_001e8137") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001e8160:\n      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);" (statement_identifier "LAB_001e8160") (: ":") (expression_statement "FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);" (call_expression "FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1)" (identifier "FUN_001e96e0") (argument_list "(plVar12,uVar8,uVar1,puVar6,1)" (( "(") (identifier "plVar12") (, ",") (identifier "uVar8") (, ",") (identifier "uVar1") (, ",") (identifier "puVar6") (, ",") (number_literal "1") () ")"))) (; ";"))) (labeled_statement "LAB_001e8137:\n      lVar11 = lVar11 + puVar5[7];" (statement_identifier "LAB_001e8137") (: ":") (expression_statement "lVar11 = lVar11 + puVar5[7];" (assignment_expression "lVar11 = lVar11 + puVar5[7]" (identifier "lVar11") (= "=") (binary_expression "lVar11 + puVar5[7]" (identifier "lVar11") (+ "+") (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")))) (; ";"))) (expression_statement "cVar4 = FUN_00301a40(puVar5,lVar11);" (assignment_expression "cVar4 = FUN_00301a40(puVar5,lVar11)" (identifier "cVar4") (= "=") (call_expression "FUN_00301a40(puVar5,lVar11)" (identifier "FUN_00301a40") (argument_list "(puVar5,lVar11)" (( "(") (identifier "puVar5") (, ",") (identifier "lVar11") () ")")))) (; ";")) (} "}"))) (} "}")))) (return_statement "return puVar5;" (return "return") (identifier "puVar5") (; ";")) (} "}")))

/* DWARF original prototype: Dwarf_pubnames_table * map_pubtable_to_dies(Gdb_index * this, uint
   attr, Gdb_index_info_reader * dwinfo, Relobj * object, uchar * symbols, off_t symbols_size) */

type_3 * __thiscall
gold::Gdb_index::map_pubtable_to_dies
          (Gdb_index *this,uint var_4,Gdb_index_info_reader *dwinfo,Relobj *object,type_6 *symbols,
          off_t symbols_size)

{
  type_1 *var_14;
  type_2 var_12;
  type_1 *var_16;
  bool bVar3;
  type_3 *this_00;
  type_4 *__node;
  type_5 var_13;
  type_2 var_17;
  type_1 *var_15;
  type_5 p_Var6;
  long var_20;
  _Hashtable<long_int,_std::pair<var_10,var_11>,_std::allocator<var_9::pair<var_10,var_11>var_3>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
  *this_01;
  
  if (var_4 == 0x2134) {
    this_00 = (type_3 *)var_5(0x58);
    this_01 = (_Hashtable<long_int,_std::pair<var_10,var_11>,_std::allocator<var_9::pair<var_10,var_11>var_3>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
               *)&this->cu_pubname_map_;
    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;
    this_00->buffer_ = (type_6 *)0x0;
    this_00->buffer_end_ = (type_6 *)0x0;
    this_00->owns_buffer_ = false;
    this_00->offset_size_ = 0;
    this_00->pinfo_ = (type_6 *)0x0;
    this_00->end_of_table_ = (type_6 *)0x0;
    this_00->is_pubtypes_ = false;
    this_00->is_gnu_style_ = false;
    this_00->unit_length_ = 0;
    this_00->cu_offset_ = 0;
  }
  else {
    this_00 = (type_3 *)var_5(0x58);
    this_01 = (_Hashtable<long_int,_std::pair<var_10,var_11>,_std::allocator<var_9::pair<var_10,var_11>var_3>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
               *)&this->cu_pubtype_map_;
    this_00->dwinfo_ = &dwinfo->super_Dwarf_info_reader;
    this_00->buffer_ = (type_6 *)0x0;
    this_00->buffer_end_ = (type_6 *)0x0;
    this_00->owns_buffer_ = false;
    this_00->offset_size_ = 0;
    this_00->pinfo_ = (type_6 *)0x0;
    this_00->end_of_table_ = (type_6 *)0x0;
    this_00->is_pubtypes_ = true;
    this_00->is_gnu_style_ = false;
    this_00->unit_length_ = 0;
    this_00->cu_offset_ = 0;
  }
  var_9::
  _Hashtable<long_int,_std::pair<var_10,var_11>,_std::allocator<var_9::pair<var_10,var_11>var_3>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
  ::var_6(this_01);
  bVar3 = type_3::var_7(this_00,object,symbols,symbols_size);
  if (bVar3) {
    var_20 = 0;
    bVar3 = type_3::var_8(this_00,0);
    if (bVar3) {
      do {
        var_14 = (type_1 *)this_00->cu_offset_;
        __node = (type_4 *)var_5(0x18);
        var_12 = this_01->_M_bucket_count;
        (__node->super__Hash_node_value_base<var_9::pair<var_10,var_11>var_3>).
        super__Hash_node_base._M_nxt = (type_1 *)0x0;
        *(type_1 **)
         &(__node->super__Hash_node_value_base<var_9::pair<var_10,var_11>var_3>)._M_storage.
          _M_storage = var_14;
        *(long *)((long)&(__node->super__Hash_node_value_base<var_9::pair<var_10,var_11>var_3>)
                         ._M_storage._M_storage + 8) = var_20;
        var_17 = (type_2)var_14 % var_12;
        var_13 = this_01->_M_buckets[var_17];
        if (var_13 != (type_5)0x0) {
          var_15 = var_13->_M_nxt[1]._M_nxt;
          p_Var6 = var_13->_M_nxt;
          while (var_14 != var_15) {
            var_16 = p_Var6->_M_nxt;
            if ((var_16 == (type_1 *)0x0) ||
               (var_15 = var_16[1]._M_nxt, var_13 = p_Var6, p_Var6 = var_16,
               var_17 != (type_2)var_15 % var_12)) goto LAB_001e8160;
          }
          if (var_13->_M_nxt != (type_1 *)0x0) {
            var_18(__node);
            goto LAB_001e8137;
          }
        }
LAB_001e8160:
        var_9::
        _Hashtable<long_int,_std::pair<var_10,var_11>,_std::allocator<var_9::pair<var_10,var_11>var_3>,_std::__detail::_Select1st,_std::equal_to<long_int>,_std::hash<long_int>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::var_1<false,_false,var_2>var_3>
        ::var_19(this_01,var_17,(type_7)var_14,__node,1);
LAB_001e8137:
        var_20 = var_20 + this_00->unit_length_;
        bVar3 = type_3::var_8(this_00,var_20);
      } while (bVar3);
    }
  }
  else {
    this_00 = (type_3 *)0x0;
  }
  return this_00;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))) (return_statement (identifier)))))

undefined8 *
MASKED(long param_1,int param_2,undefined8 param_3,undefined8 param_4,undefined8 param_5,
            undefined8 param_6)

{
  ulong uVar1;
  ulong uVar2;
  long *plVar3;
  char cVar4;
  undefined8 *puVar5;
  undefined8 *puVar6;
  long *plVar7;
  ulong uVar8;
  ulong uVar9;
  long *plVar10;
  long lVar11;
  long *plVar12;
  
  if (param_2 == 0x2134) {
    puVar5 = (undefined8 *)FUN_00337270(0x58);
    plVar12 = (long *)(param_1 + 0x38);
    *puVar5 = param_3;
    puVar5[1] = 0;
    puVar5[2] = 0;
    *(undefined1 *)(puVar5 + 3) = 0;
    *(undefined4 *)((long)puVar5 + 0x1c) = 0;
    puVar5[4] = 0;
    puVar5[5] = 0;
    *(undefined2 *)(puVar5 + 6) = 0;
    puVar5[7] = 0;
    puVar5[8] = 0;
  }
  else {
    puVar5 = (undefined8 *)FUN_00337270(0x58);
    plVar12 = (long *)(param_1 + 0x70);
    *puVar5 = param_3;
    puVar5[1] = 0;
    puVar5[2] = 0;
    *(undefined1 *)(puVar5 + 3) = 0;
    *(undefined4 *)((long)puVar5 + 0x1c) = 0;
    puVar5[4] = 0;
    puVar5[5] = 0;
    *(undefined2 *)(puVar5 + 6) = 1;
    puVar5[7] = 0;
    puVar5[8] = 0;
  }
  FUN_001e8980(plVar12);
  cVar4 = FUN_00301830(puVar5,param_4,param_5,param_6);
  if (cVar4 == '\0') {
    puVar5 = (undefined8 *)0x0;
  }
  else {
    lVar11 = 0;
    cVar4 = FUN_00301a40(puVar5,0);
    while (cVar4 != '\0') {
      uVar1 = puVar5[8];
      puVar6 = (undefined8 *)FUN_00337270(0x18);
      uVar2 = plVar12[1];
      *puVar6 = 0;
      puVar6[1] = uVar1;
      puVar6[2] = lVar11;
      uVar8 = uVar1 % uVar2;
      plVar7 = *(long **)(*plVar12 + uVar8 * 8);
      if (plVar7 != (long *)0x0) {
        uVar9 = ((long *)*plVar7)[1];
        plVar10 = (long *)*plVar7;
        while (uVar1 != uVar9) {
          plVar3 = (long *)*plVar10;
          if ((plVar3 == (long *)0x0) ||
             (uVar9 = plVar3[1], plVar7 = plVar10, plVar10 = plVar3, uVar8 != uVar9 % uVar2))
          goto LAB_001e8160;
        }
        if (*plVar7 != 0) {
          FUN_00338a40();
          goto LAB_001e8137;
        }
      }
LAB_001e8160:
      FUN_001e96e0(plVar12,uVar8,uVar1,puVar6,1);
LAB_001e8137:
      lVar11 = lVar11 + puVar5[7];
      cVar4 = FUN_00301a40(puVar5,lVar11);
    }
  }
  return puVar5;
}

