
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void add_plugin(General_options * this, char * filename) */

void __thiscall gold::General_options::add_plugin(General_options *this,char *filename)

{
  size_t *psVar1;
  _List_node_base *p_Var2;
  char *pcVar3;
  size_t sVar4;
  _List_node_base *this_00;
  Plugin_manager *pPVar5;
  uint uVar6;
  
  pPVar5 = this->plugins_;
  if (pPVar5 == (Plugin_manager *)0x0) {
    pPVar5 = (Plugin_manager *)operator_new(0xd8);
    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.
    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;
    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.
    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;
    pPVar5->options_ = this;
    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.
    _M_node._M_size = 0;
    (pPVar5->current_)._M_node = (_List_node_base *)0x0;
    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.
    _M_start = (pointer)0x0;
    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.
    _M_finish = (pointer)0x0;
    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.
    _M_end_of_storage = (pointer)0x0;
    (pPVar5->deferred_layout_objects_).
    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =
         (pointer)0x0;
    (pPVar5->deferred_layout_objects_).
    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =
         (pointer)0x0;
    (pPVar5->deferred_layout_objects_).
    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =
         (pointer)0x0;
    pPVar5->input_file_ = (Input_file *)0x0;
    (pPVar5->plugin_input_file_).name = (char *)0x0;
    (pPVar5->plugin_input_file_).fd = 0;
    *(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;
    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;
    *(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;
    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;
    (pPVar5->plugin_input_file_).handle = (void *)0x0;
    (pPVar5->rescannable_).
    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
    ._M_impl._M_start = (pointer)0x0;
    (pPVar5->rescannable_).
    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
    ._M_impl._M_finish = (pointer)0x0;
    (pPVar5->rescannable_).
    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>
    ._M_impl._M_end_of_storage = (pointer)0x0;
    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
    _M_impl._M_start = (pointer)0x0;
    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
    _M_impl._M_finish = (pointer)0x0;
    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
    _M_impl._M_end_of_storage = (pointer)0x0;
    pPVar5->any_claimed_ = false;
    pPVar5->in_replacement_phase_ = false;
    pPVar5->any_added_ = false;
    pPVar5->in_claim_file_handler_ = false;
    pPVar5->workqueue_ = (Workqueue *)0x0;
    pPVar5->task_ = (Task *)0x0;
    pPVar5->input_objects_ = (Input_objects *)0x0;
    pPVar5->symtab_ = (Symbol_table *)0x0;
    pPVar5->layout_ = (Layout *)0x0;
    pPVar5->dirpath_ = (Dirsearch *)0x0;
    pPVar5->mapfile_ = (Mapfile *)0x0;
    pPVar5->this_blocker_ = (Task_token *)0x0;
    (pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;
    (pPVar5->extra_search_path_)._M_string_length = 0;
    (pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';
    pPVar5->lock_ = (Lock *)0x0;
                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */
    Once::Once(&(pPVar5->initialize_lock_).super_Once);
    (pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;
    (pPVar5->initialize_lock_).super_Once._vptr_Once =
         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;
    uVar6 = 0;
    do {
      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;
      uVar6 = uVar6 + 4;
    } while (uVar6 < 0x1c);
    (pPVar5->current_)._M_node = (_List_node_base *)pPVar5;
    (pPVar5->defsym_defines_set_)._M_h._M_buckets =
         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;
    (pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;
    (pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
    (pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;
    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;
    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;
    (pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;
    pPVar5->recorder_ = (Plugin_recorder *)0x0;
    this->plugins_ = pPVar5;
  }
  p_Var2 = (_List_node_base *)operator_new(0x3c);
  p_Var2->_M_next = (_List_node_base *)0x0;
  p_Var2->_M_prev = (_List_node_base *)&p_Var2[1]._M_prev;
  pcVar3 = (char *)0xffffffff;
  if (filename != (char *)0x0) {
    sVar4 = strlen(filename);
    pcVar3 = filename + sVar4;
  }
                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char_const*>
            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,
             filename,pcVar3,0);
  p_Var2[3]._M_prev = (_List_node_base *)0x0;
  p_Var2[4]._M_next = (_List_node_base *)0x0;
  p_Var2[4]._M_prev = (_List_node_base *)0x0;
  p_Var2[5]._M_next = (_List_node_base *)0x0;
  p_Var2[5]._M_prev = (_List_node_base *)0x0;
  p_Var2[6]._M_next = (_List_node_base *)0x0;
  p_Var2[6]._M_prev = (_List_node_base *)0x0;
  *(undefined1 *)&p_Var2[7]._M_next = 0;
  this_00 = (_List_node_base *)operator_new(0xc);
  this_00[1]._M_next = p_Var2;
  std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);
  psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.
            _M_impl._M_node._M_size;
  *psVar1 = *psVar1 + 1;
  return;
}



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

void FUN_000d8ab0(int param_1,char *param_2)

{
  undefined4 *puVar1;
  char *pcVar2;
  size_t sVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  
  iVar5 = *(int *)(param_1 + 0x593c);
  if (iVar5 == 0) {
    iVar5 = FUN_001aa8c0(0xd8);
    *(int *)(iVar5 + 4) = iVar5;
    *(int *)iVar5 = iVar5;
    *(int *)(iVar5 + 100) = param_1;
    *(undefined4 *)(iVar5 + 8) = 0;
    *(undefined4 *)(iVar5 + 0xc) = 0;
    *(undefined4 *)(iVar5 + 0x10) = 0;
    *(undefined4 *)(iVar5 + 0x14) = 0;
    *(undefined4 *)(iVar5 + 0x18) = 0;
    *(undefined4 *)(iVar5 + 0x1c) = 0;
    *(undefined4 *)(iVar5 + 0x20) = 0;
    *(undefined4 *)(iVar5 + 0x24) = 0;
    *(undefined4 *)(iVar5 + 0x28) = 0;
    *(undefined4 *)(iVar5 + 0x2c) = 0;
    *(undefined4 *)(iVar5 + 0x30) = 0;
    *(undefined4 *)(iVar5 + 0x34) = 0;
    *(undefined4 *)(iVar5 + 0x38) = 0;
    *(undefined4 *)(iVar5 + 0x3c) = 0;
    *(undefined4 *)(iVar5 + 0x40) = 0;
    *(undefined4 *)(iVar5 + 0x44) = 0;
    *(undefined4 *)(iVar5 + 0x48) = 0;
    *(undefined4 *)(iVar5 + 0x4c) = 0;
    *(undefined4 *)(iVar5 + 0x50) = 0;
    *(undefined4 *)(iVar5 + 0x54) = 0;
    *(undefined4 *)(iVar5 + 0x58) = 0;
    *(undefined4 *)(iVar5 + 0x5c) = 0;
    *(undefined4 *)(iVar5 + 0x60) = 0;
    *(undefined4 *)(iVar5 + 0x68) = 0;
    *(undefined4 *)(iVar5 + 0x6c) = 0;
    *(undefined4 *)(iVar5 + 0x70) = 0;
    *(undefined4 *)(iVar5 + 0x74) = 0;
    *(undefined4 *)(iVar5 + 0x78) = 0;
    *(undefined4 *)(iVar5 + 0x7c) = 0;
    *(undefined4 *)(iVar5 + 0x80) = 0;
    *(undefined4 *)(iVar5 + 0x84) = 0;
    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;
    *(undefined4 *)(iVar5 + 0x8c) = 0;
    *(undefined1 *)(iVar5 + 0x90) = 0;
    *(undefined4 *)(iVar5 + 0xa0) = 0;
                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */
    FUN_0008e690(iVar5 + 0xa4);
    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;
    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;
    uVar6 = 0;
    do {
      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;
      uVar6 = uVar6 + 4;
    } while (uVar6 < 0x1c);
    *(int *)(iVar5 + 0xc) = iVar5;
    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;
    *(undefined4 *)(iVar5 + 0xbc) = 1;
    *(undefined4 *)(iVar5 + 0xc0) = 0;
    *(undefined4 *)(iVar5 + 0xc4) = 0;
    *(undefined4 *)(iVar5 + 200) = 0x3f800000;
    *(undefined4 *)(iVar5 + 0xcc) = 0;
    *(undefined4 *)(iVar5 + 0xd0) = 0;
    *(undefined4 *)(iVar5 + 0xd4) = 0;
    *(int *)(param_1 + 0x593c) = iVar5;
  }
  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);
  *puVar1 = 0;
  puVar1[1] = puVar1 + 3;
  pcVar2 = (char *)0xffffffff;
  if (param_2 != (char *)0x0) {
    sVar3 = strlen(param_2);
    pcVar2 = param_2 + sVar3;
  }
                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */
  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  puVar1[0xd] = 0;
  *(undefined1 *)(puVar1 + 0xe) = 0;
  iVar4 = FUN_001aa8c0(0xc);
  *(undefined4 **)(iVar4 + 8) = puVar1;
  FUN_001af630(iVar4,iVar5);
  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;
  return;
}


CALL 0x00058c42
ADD EAX,0x26654b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
MOV dword ptr [EBP + -0x1c],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EAX + 0x593c]
TEST ESI,ESI
JZ 0x000d8b90
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH 0x3c
CALL 0x001aa8c0
MOV EBX,dword ptr [EBP + 0xc]
ADD ESP,0x10
MOV dword ptr [EAX],0x0
MOV EDI,EAX
LEA EDX,[EAX + 0x4]
LEA EAX,[EAX + 0xc]
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,0xffffffff
TEST EBX,EBX
JZ 0x000d8b1e
SUB ESP,0xc
PUSH dword ptr [EBP + 0xc]
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EBP + -0x20],EDX
CALL 0x000285f0
MOV EDX,dword ptr [EBP + -0x20]
ADD ESP,0x10
ADD EAX,dword ptr [EBP + 0xc]
PUSH 0x0
PUSH EAX
PUSH dword ptr [EBP + 0xc]
PUSH EDX
CALL 0x00056c80
MOV dword ptr [EDI + 0x1c],0x0
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EDI + 0x20],0x0
MOV dword ptr [EDI + 0x24],0x0
MOV dword ptr [EDI + 0x28],0x0
MOV dword ptr [EDI + 0x2c],0x0
MOV dword ptr [EDI + 0x30],0x0
MOV dword ptr [EDI + 0x34],0x0
MOV byte ptr [EDI + 0x38],0x0
MOV dword ptr [ESP],0xc
CALL 0x001aa8c0
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EAX + 0x8],EDI
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x001af630
ADD dword ptr [ESI + 0x8],0x1
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
MOV EBX,dword ptr [EBP + -0x1c]
PUSH 0xd8
CALL 0x001aa8c0
MOV ECX,dword ptr [EBP + 0x8]
MOV ESI,EAX
LEA EDI,[EAX + 0x90]
MOV dword ptr [ESI + 0x4],EAX
MOV dword ptr [ESI],EAX
MOV dword ptr [EAX + 0x64],ECX
LEA ECX,[EAX + 0xa0]
LEA EAX,[EAX + 0xa4]
MOV dword ptr [EAX + 0xffffff64],0x0
MOV dword ptr [EAX + 0xffffff68],0x0
MOV dword ptr [EAX + 0xffffff6c],0x0
MOV dword ptr [EAX + 0xffffff70],0x0
MOV dword ptr [EAX + 0xffffff74],0x0
MOV dword ptr [EAX + 0xffffff78],0x0
MOV dword ptr [EAX + 0xffffff7c],0x0
MOV dword ptr [EAX + -0x80],0x0
MOV dword ptr [EAX + -0x7c],0x0
MOV dword ptr [EAX + -0x78],0x0
MOV dword ptr [EAX + -0x74],0x0
MOV dword ptr [EAX + -0x70],0x0
MOV dword ptr [EAX + -0x6c],0x0
MOV dword ptr [EAX + -0x68],0x0
MOV dword ptr [EAX + -0x64],0x0
MOV dword ptr [EAX + -0x60],0x0
MOV dword ptr [EAX + -0x5c],0x0
MOV dword ptr [EAX + -0x58],0x0
MOV dword ptr [EAX + -0x54],0x0
MOV dword ptr [EAX + -0x50],0x0
MOV dword ptr [EAX + -0x4c],0x0
MOV dword ptr [EAX + -0x48],0x0
MOV dword ptr [EAX + -0x44],0x0
MOV dword ptr [EAX + -0x3c],0x0
MOV dword ptr [EAX + -0x38],0x0
MOV dword ptr [EAX + -0x34],0x0
MOV dword ptr [EAX + -0x30],0x0
MOV dword ptr [EAX + -0x2c],0x0
MOV dword ptr [EAX + -0x28],0x0
MOV EBX,dword ptr [EBP + -0x1c]
MOV dword ptr [EAX + -0x24],0x0
MOV dword ptr [EAX + -0x20],0x0
MOV dword ptr [EAX + -0x1c],EDI
MOV dword ptr [EAX + -0x18],0x0
MOV byte ptr [EAX + -0x14],0x0
MOV dword ptr [EAX + -0x4],0x0
MOV dword ptr [EBP + -0x20],ECX
MOV dword ptr [ESP],EAX
CALL 0x0008e690
MOV EAX,dword ptr [EBP + -0x1c]
LEA ECX,[ESI + 0xa0]
ADD ESP,0x10
XOR EDX,EDX
MOV dword ptr [ESI + 0xb4],ECX
LEA EAX,[EAX + 0xffff4724]
ADD EAX,0x8
MOV dword ptr [ESI + 0xa4],EAX
XOR EAX,EAX
MOV dword ptr [ESI + EAX*0x1 + 0xb8],EDX
ADD EAX,0x4
CMP EAX,0x1c
JC 0x000d8cf5
LEA EAX,[ESI + 0xd0]
MOV dword ptr [ESI + 0xc],ESI
MOV dword ptr [ESI + 0xb8],EAX
MOV EAX,dword ptr [EBP + 0x8]
MOV dword ptr [ESI + 0xbc],0x1
MOV dword ptr [ESI + 0xc0],0x0
MOV dword ptr [ESI + 0xc4],0x0
MOV dword ptr [ESI + 0xc8],0x3f800000
MOV dword ptr [ESI + 0xcc],0x0
MOV dword ptr [ESI + 0xd0],0x0
MOV dword ptr [ESI + 0xd4],0x0
MOV dword ptr [EAX + 0x593c],ESI
JMP 0x000d8ad7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000d8ab0(int param_1,char *param_2)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */\n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}\n\n" comment (function_definition "void FUN_000d8ab0(int param_1,char *param_2)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */\n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}" primitive_type (function_declarator "FUN_000d8ab0(int param_1,char *param_2)" identifier (parameter_list "(int param_1,char *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */\n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x593c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x593c)" identifier = (pointer_expression "*(int *)(param_1 + 0x593c)" * (cast_expression "(int *)(param_1 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x593c)" ( (binary_expression "param_1 + 0x593c" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }" { (expression_statement "iVar5 = FUN_001aa8c0(0xd8);" (assignment_expression "iVar5 = FUN_001aa8c0(0xd8)" identifier = (call_expression "FUN_001aa8c0(0xd8)" identifier (argument_list "(0xd8)" ( number_literal )))) ;) (expression_statement "*(int *)(iVar5 + 4) = iVar5;" (assignment_expression "*(int *)(iVar5 + 4) = iVar5" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)iVar5 = iVar5;" (assignment_expression "*(int *)iVar5 = iVar5" (pointer_expression "*(int *)iVar5" * (cast_expression "(int *)iVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(iVar5 + 100) = param_1;" (assignment_expression "*(int *)(iVar5 + 100) = param_1" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x20)" * (cast_expression "(undefined4 *)(iVar5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" * (cast_expression "(undefined4 *)(iVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x28)" * (cast_expression "(undefined4 *)(iVar5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" * (cast_expression "(undefined4 *)(iVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" * (cast_expression "(undefined4 *)(iVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x38)" * (cast_expression "(undefined4 *)(iVar5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x3c)" * (cast_expression "(undefined4 *)(iVar5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x40)" * (cast_expression "(undefined4 *)(iVar5 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x40)" ( (binary_expression "iVar5 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x44) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x44)" * (cast_expression "(undefined4 *)(iVar5 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x44)" ( (binary_expression "iVar5 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x48) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x48)" * (cast_expression "(undefined4 *)(iVar5 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x4c)" * (cast_expression "(undefined4 *)(iVar5 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x50) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x50)" * (cast_expression "(undefined4 *)(iVar5 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x54) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x54) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x54)" * (cast_expression "(undefined4 *)(iVar5 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x58)" * (cast_expression "(undefined4 *)(iVar5 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x58)" ( (binary_expression "iVar5 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x5c)" * (cast_expression "(undefined4 *)(iVar5 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x5c)" ( (binary_expression "iVar5 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x60)" * (cast_expression "(undefined4 *)(iVar5 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x60)" ( (binary_expression "iVar5 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x68) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x68)" * (cast_expression "(undefined4 *)(iVar5 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x68)" ( (binary_expression "iVar5 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x6c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x6c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x6c)" * (cast_expression "(undefined4 *)(iVar5 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x70)" * (cast_expression "(undefined4 *)(iVar5 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x70)" ( (binary_expression "iVar5 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x74) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x74)" * (cast_expression "(undefined4 *)(iVar5 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x78)" * (cast_expression "(undefined4 *)(iVar5 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x78)" ( (binary_expression "iVar5 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x7c)" * (cast_expression "(undefined4 *)(iVar5 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x80) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x80)" * (cast_expression "(undefined4 *)(iVar5 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x80)" ( (binary_expression "iVar5 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x84) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x84)" * (cast_expression "(undefined4 *)(iVar5 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x84)" ( (binary_expression "iVar5 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar5 + 0x88) = iVar5 + 0x90;" (assignment_expression "*(int *)(iVar5 + 0x88) = iVar5 + 0x90" (pointer_expression "*(int *)(iVar5 + 0x88)" * (cast_expression "(int *)(iVar5 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x88)" ( (binary_expression "iVar5 + 0x88" identifier + number_literal) )))) = (binary_expression "iVar5 + 0x90" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x8c)" * (cast_expression "(undefined4 *)(iVar5 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x8c)" ( (binary_expression "iVar5 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar5 + 0x90) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + 0x90) = 0" (pointer_expression "*(undefined1 *)(iVar5 + 0x90)" * (cast_expression "(undefined1 *)(iVar5 + 0x90)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x90)" ( (binary_expression "iVar5 + 0x90" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xa0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xa0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xa0)" * (cast_expression "(undefined4 *)(iVar5 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xa0)" ( (binary_expression "iVar5 + 0xa0" identifier + number_literal) )))) = number_literal) ;) comment (expression_statement "FUN_0008e690(iVar5 + 0xa4);" (call_expression "FUN_0008e690(iVar5 + 0xa4)" identifier (argument_list "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) ))) ;) (expression_statement "*(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;" (assignment_expression "*(int *)(iVar5 + 0xb4) = iVar5 + 0xa0" (pointer_expression "*(int *)(iVar5 + 0xb4)" * (cast_expression "(int *)(iVar5 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xb4)" ( (binary_expression "iVar5 + 0xb4" identifier + number_literal) )))) = (binary_expression "iVar5 + 0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;" (assignment_expression "*(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c" (pointer_expression "*(undefined ***)(iVar5 + 0xa4)" * (cast_expression "(undefined ***)(iVar5 + 0xa4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) )))) = (pointer_expression "&PTR_FUN_0033372c" & identifier)) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    }" { (expression_statement "*(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xb8 + uVar6)" * (cast_expression "(undefined4 *)(iVar5 + 0xb8 + uVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xb8 + uVar6)" ( (binary_expression "iVar5 + 0xb8 + uVar6" (binary_expression "iVar5 + 0xb8" identifier + number_literal) + identifier) )))) = number_literal) ;) (expression_statement "uVar6 = uVar6 + 4;" (assignment_expression "uVar6 = uVar6 + 4" identifier = (binary_expression "uVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < 0x1c)" ( (binary_expression "uVar6 < 0x1c" identifier < number_literal) )) ;) (expression_statement "*(int *)(iVar5 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar5 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;" (assignment_expression "*(int *)(iVar5 + 0xb8) = iVar5 + 0xd0" (pointer_expression "*(int *)(iVar5 + 0xb8)" * (cast_expression "(int *)(iVar5 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xb8)" ( (binary_expression "iVar5 + 0xb8" identifier + number_literal) )))) = (binary_expression "iVar5 + 0xd0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xbc) = 1;" (assignment_expression "*(undefined4 *)(iVar5 + 0xbc) = 1" (pointer_expression "*(undefined4 *)(iVar5 + 0xbc)" * (cast_expression "(undefined4 *)(iVar5 + 0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xbc)" ( (binary_expression "iVar5 + 0xbc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc0)" * (cast_expression "(undefined4 *)(iVar5 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc0)" ( (binary_expression "iVar5 + 0xc0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc4)" * (cast_expression "(undefined4 *)(iVar5 + 0xc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc4)" ( (binary_expression "iVar5 + 0xc4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 200) = 0x3f800000;" (assignment_expression "*(undefined4 *)(iVar5 + 200) = 0x3f800000" (pointer_expression "*(undefined4 *)(iVar5 + 200)" * (cast_expression "(undefined4 *)(iVar5 + 200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 200)" ( (binary_expression "iVar5 + 200" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xcc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xcc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xcc)" * (cast_expression "(undefined4 *)(iVar5 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xcc)" ( (binary_expression "iVar5 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xd0)" * (cast_expression "(undefined4 *)(iVar5 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd0)" ( (binary_expression "iVar5 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xd4)" * (cast_expression "(undefined4 *)(iVar5 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd4)" ( (binary_expression "iVar5 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x593c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x593c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x593c)" * (cast_expression "(int *)(param_1 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x593c)" ( (binary_expression "param_1 + 0x593c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);" (assignment_expression "puVar1 = (undefined4 *)FUN_001aa8c0(0x3c)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x3c)" identifier (argument_list "(0x3c)" ( number_literal ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = puVar1 + 3;" (assignment_expression "puVar1[1] = puVar1 + 3" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (binary_expression "puVar1 + 3" identifier + number_literal)) ;) (expression_statement "pcVar2 = (char *)0xffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }" { (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar2 = param_2 + sVar3;" (assignment_expression "pcVar2 = param_2 + sVar3" identifier = (binary_expression "param_2 + sVar3" identifier + identifier)) ;) })) comment (expression_statement "FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);" (call_expression "FUN_00056c80(puVar1 + 1,param_2,pcVar2,0)" identifier (argument_list "(puVar1 + 1,param_2,pcVar2,0)" ( (binary_expression "puVar1 + 1" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[10] = 0;" (assignment_expression "puVar1[10] = 0" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[0xb] = 0;" (assignment_expression "puVar1[0xb] = 0" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[0xc] = 0;" (assignment_expression "puVar1[0xc] = 0" (subscript_expression "puVar1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[0xd] = 0;" (assignment_expression "puVar1[0xd] = 0" (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar1 + 0xe) = 0;" (assignment_expression "*(undefined1 *)(puVar1 + 0xe) = 0" (pointer_expression "*(undefined1 *)(puVar1 + 0xe)" * (cast_expression "(undefined1 *)(puVar1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xe)" ( (binary_expression "puVar1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = FUN_001aa8c0(0xc);" (assignment_expression "iVar4 = FUN_001aa8c0(0xc)" identifier = (call_expression "FUN_001aa8c0(0xc)" identifier (argument_list "(0xc)" ( number_literal )))) ;) (expression_statement "*(undefined4 **)(iVar4 + 8) = puVar1;" (assignment_expression "*(undefined4 **)(iVar4 + 8) = puVar1" (pointer_expression "*(undefined4 **)(iVar4 + 8)" * (cast_expression "(undefined4 **)(iVar4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001af630(iVar4,iVar5);" (call_expression "FUN_001af630(iVar4,iVar5)" identifier (argument_list "(iVar4,iVar5)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;" (assignment_expression "*(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar5 + 8) + 1" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void add_plugin(General_options * this, char * filename) */\n\nvoid __thiscall gold::General_options::add_plugin(General_options *this,char *filename)\n\n{\n  size_t *psVar1;\n  _List_node_base *p_Var2;\n  char *pcVar3;\n  size_t sVar4;\n  _List_node_base *this_00;\n  Plugin_manager *pPVar5;\n  uint uVar6;\n  \n  pPVar5 = this->plugins_;\n  if (pPVar5 == (Plugin_manager *)0x0) {\n    pPVar5 = (Plugin_manager *)operator_new(0xd8);\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;\n    pPVar5->options_ = this;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pPVar5->current_)._M_node = (_List_node_base *)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0;\n    pPVar5->input_file_ = (Input_file *)0x0;\n    (pPVar5->plugin_input_file_).name = (char *)0x0;\n    (pPVar5->plugin_input_file_).fd = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;\n    (pPVar5->plugin_input_file_).handle = (void *)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    pPVar5->any_claimed_ = false;\n    pPVar5->in_replacement_phase_ = false;\n    pPVar5->any_added_ = false;\n    pPVar5->in_claim_file_handler_ = false;\n    pPVar5->workqueue_ = (Workqueue *)0x0;\n    pPVar5->task_ = (Task *)0x0;\n    pPVar5->input_objects_ = (Input_objects *)0x0;\n    pPVar5->symtab_ = (Symbol_table *)0x0;\n    pPVar5->layout_ = (Layout *)0x0;\n    pPVar5->dirpath_ = (Dirsearch *)0x0;\n    pPVar5->mapfile_ = (Mapfile *)0x0;\n    pPVar5->this_blocker_ = (Task_token *)0x0;\n    (pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;\n    (pPVar5->extra_search_path_)._M_string_length = 0;\n    (pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';\n    pPVar5->lock_ = (Lock *)0x0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    Once::Once(&(pPVar5->initialize_lock_).super_Once);\n    (pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;\n    (pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    (pPVar5->current_)._M_node = (_List_node_base *)pPVar5;\n    (pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;\n    (pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;\n    (pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    pPVar5->recorder_ = (Plugin_recorder *)0x0;\n    this->plugins_ = pPVar5;\n  }\n  p_Var2 = (_List_node_base *)operator_new(0x3c);\n  p_Var2->_M_next = (_List_node_base *)0x0;\n  p_Var2->_M_prev = (_List_node_base *)&p_Var2[1]._M_prev;\n  pcVar3 = (char *)0xffffffff;\n  if (filename != (char *)0x0) {\n    sVar4 = strlen(filename);\n    pcVar3 = filename + sVar4;\n  }\n                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0);\n  p_Var2[3]._M_prev = (_List_node_base *)0x0;\n  p_Var2[4]._M_next = (_List_node_base *)0x0;\n  p_Var2[4]._M_prev = (_List_node_base *)0x0;\n  p_Var2[5]._M_next = (_List_node_base *)0x0;\n  p_Var2[5]._M_prev = (_List_node_base *)0x0;\n  p_Var2[6]._M_next = (_List_node_base *)0x0;\n  p_Var2[6]._M_prev = (_List_node_base *)0x0;\n  *(undefined1 *)&p_Var2[7]._M_next = 0;\n  this_00 = (_List_node_base *)operator_new(0xc);\n  this_00[1]._M_next = p_Var2;\n  std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);\n  psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl._M_node._M_size;\n  *psVar1 = *psVar1 + 1;\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall gold::General_options::add_plugin(General_options *this,char *filename)\n\n{\n  size_t *psVar1;\n  _List_node_base *p_Var2;\n  char *pcVar3;\n  size_t sVar4;\n  _List_node_base *this_00;\n  Plugin_manager *pPVar5;\n  uint uVar6;\n  \n  pPVar5 = this->plugins_;\n  if (pPVar5 == (Plugin_manager *)0x0) {\n    pPVar5 = (Plugin_manager *)operator_new(0xd8);\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;\n    pPVar5->options_ = this;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pPVar5->current_)._M_node = (_List_node_base *)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0;\n    pPVar5->input_file_ = (Input_file *)0x0;\n    (pPVar5->plugin_input_file_).name = (char *)0x0;\n    (pPVar5->plugin_input_file_).fd = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;\n    (pPVar5->plugin_input_file_).handle = (void *)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    pPVar5->any_claimed_ = false;\n    pPVar5->in_replacement_phase_ = false;\n    pPVar5->any_added_ = false;\n    pPVar5->in_claim_file_handler_ = false;\n    pPVar5->workqueue_ = (Workqueue *)0x0;\n    pPVar5->task_ = (Task *)0x0;\n    pPVar5->input_objects_ = (Input_objects *)0x0;\n    pPVar5->symtab_ = (Symbol_table *)0x0;\n    pPVar5->layout_ = (Layout *)0x0;\n    pPVar5->dirpath_ = (Dirsearch *)0x0;\n    pPVar5->mapfile_ = (Mapfile *)0x0;\n    pPVar5->this_blocker_ = (Task_token *)0x0;\n    (pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;\n    (pPVar5->extra_search_path_)._M_string_length = 0;\n    (pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';\n    pPVar5->lock_ = (Lock *)0x0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    Once::Once(&(pPVar5->initialize_lock_).super_Once);\n    (pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;\n    (pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    (pPVar5->current_)._M_node = (_List_node_base *)pPVar5;\n    (pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;\n    (pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;\n    (pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    pPVar5->recorder_ = (Plugin_recorder *)0x0;\n    this->plugins_ = pPVar5;\n  }\n  p_Var2 = (_List_node_base *)operator_new(0x3c);\n  p_Var2->_M_next = (_List_node_base *)0x0;\n  p_Var2->_M_prev = (_List_node_base *)&p_Var2[1]._M_prev;\n  pcVar3 = (char *)0xffffffff;\n  if (filename != (char *)0x0) {\n    sVar4 = strlen(filename);\n    pcVar3 = filename + sVar4;\n  }\n                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0);\n  p_Var2[3]._M_prev = (_List_node_base *)0x0;\n  p_Var2[4]._M_next = (_List_node_base *)0x0;\n  p_Var2[4]._M_prev = (_List_node_base *)0x0;\n  p_Var2[5]._M_next = (_List_node_base *)0x0;\n  p_Var2[5]._M_prev = (_List_node_base *)0x0;\n  p_Var2[6]._M_next = (_List_node_base *)0x0;\n  p_Var2[6]._M_prev = (_List_node_base *)0x0;\n  *(undefined1 *)&p_Var2[7]._M_next = 0;\n  this_00 = (_List_node_base *)operator_new(0xc);\n  this_00[1]._M_next = p_Var2;\n  std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);\n  psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl._M_node._M_size;\n  *psVar1 = *psVar1 + 1;\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::General_options::" identifier : : identifier : :) (function_declarator "add_plugin(General_options *this,char *filename)" identifier (parameter_list "(General_options *this,char *filename)" ( (parameter_declaration "General_options *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  size_t *psVar1;\n  _List_node_base *p_Var2;\n  char *pcVar3;\n  size_t sVar4;\n  _List_node_base *this_00;\n  Plugin_manager *pPVar5;\n  uint uVar6;\n  \n  pPVar5 = this->plugins_;\n  if (pPVar5 == (Plugin_manager *)0x0) {\n    pPVar5 = (Plugin_manager *)operator_new(0xd8);\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;\n    pPVar5->options_ = this;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pPVar5->current_)._M_node = (_List_node_base *)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0;\n    pPVar5->input_file_ = (Input_file *)0x0;\n    (pPVar5->plugin_input_file_).name = (char *)0x0;\n    (pPVar5->plugin_input_file_).fd = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;\n    (pPVar5->plugin_input_file_).handle = (void *)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    pPVar5->any_claimed_ = false;\n    pPVar5->in_replacement_phase_ = false;\n    pPVar5->any_added_ = false;\n    pPVar5->in_claim_file_handler_ = false;\n    pPVar5->workqueue_ = (Workqueue *)0x0;\n    pPVar5->task_ = (Task *)0x0;\n    pPVar5->input_objects_ = (Input_objects *)0x0;\n    pPVar5->symtab_ = (Symbol_table *)0x0;\n    pPVar5->layout_ = (Layout *)0x0;\n    pPVar5->dirpath_ = (Dirsearch *)0x0;\n    pPVar5->mapfile_ = (Mapfile *)0x0;\n    pPVar5->this_blocker_ = (Task_token *)0x0;\n    (pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;\n    (pPVar5->extra_search_path_)._M_string_length = 0;\n    (pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';\n    pPVar5->lock_ = (Lock *)0x0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    Once::Once(&(pPVar5->initialize_lock_).super_Once);\n    (pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;\n    (pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    (pPVar5->current_)._M_node = (_List_node_base *)pPVar5;\n    (pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;\n    (pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;\n    (pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    pPVar5->recorder_ = (Plugin_recorder *)0x0;\n    this->plugins_ = pPVar5;\n  }\n  p_Var2 = (_List_node_base *)operator_new(0x3c);\n  p_Var2->_M_next = (_List_node_base *)0x0;\n  p_Var2->_M_prev = (_List_node_base *)&p_Var2[1]._M_prev;\n  pcVar3 = (char *)0xffffffff;\n  if (filename != (char *)0x0) {\n    sVar4 = strlen(filename);\n    pcVar3 = filename + sVar4;\n  }\n                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0);\n  p_Var2[3]._M_prev = (_List_node_base *)0x0;\n  p_Var2[4]._M_next = (_List_node_base *)0x0;\n  p_Var2[4]._M_prev = (_List_node_base *)0x0;\n  p_Var2[5]._M_next = (_List_node_base *)0x0;\n  p_Var2[5]._M_prev = (_List_node_base *)0x0;\n  p_Var2[6]._M_next = (_List_node_base *)0x0;\n  p_Var2[6]._M_prev = (_List_node_base *)0x0;\n  *(undefined1 *)&p_Var2[7]._M_next = 0;\n  this_00 = (_List_node_base *)operator_new(0xc);\n  this_00[1]._M_next = p_Var2;\n  std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);\n  psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl._M_node._M_size;\n  *psVar1 = *psVar1 + 1;\n  return;\n}" { (declaration "size_t *psVar1;" primitive_type (pointer_declarator "*psVar1" * identifier) ;) (declaration "_List_node_base *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "_List_node_base *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Plugin_manager *pPVar5;" type_identifier (pointer_declarator "*pPVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "pPVar5 = this->plugins_;" (assignment_expression "pPVar5 = this->plugins_" identifier = (field_expression "this->plugins_" identifier -> field_identifier)) ;) (if_statement "if (pPVar5 == (Plugin_manager *)0x0) {\n    pPVar5 = (Plugin_manager *)operator_new(0xd8);\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;\n    pPVar5->options_ = this;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pPVar5->current_)._M_node = (_List_node_base *)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0;\n    pPVar5->input_file_ = (Input_file *)0x0;\n    (pPVar5->plugin_input_file_).name = (char *)0x0;\n    (pPVar5->plugin_input_file_).fd = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;\n    (pPVar5->plugin_input_file_).handle = (void *)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    pPVar5->any_claimed_ = false;\n    pPVar5->in_replacement_phase_ = false;\n    pPVar5->any_added_ = false;\n    pPVar5->in_claim_file_handler_ = false;\n    pPVar5->workqueue_ = (Workqueue *)0x0;\n    pPVar5->task_ = (Task *)0x0;\n    pPVar5->input_objects_ = (Input_objects *)0x0;\n    pPVar5->symtab_ = (Symbol_table *)0x0;\n    pPVar5->layout_ = (Layout *)0x0;\n    pPVar5->dirpath_ = (Dirsearch *)0x0;\n    pPVar5->mapfile_ = (Mapfile *)0x0;\n    pPVar5->this_blocker_ = (Task_token *)0x0;\n    (pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;\n    (pPVar5->extra_search_path_)._M_string_length = 0;\n    (pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';\n    pPVar5->lock_ = (Lock *)0x0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    Once::Once(&(pPVar5->initialize_lock_).super_Once);\n    (pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;\n    (pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    (pPVar5->current_)._M_node = (_List_node_base *)pPVar5;\n    (pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;\n    (pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;\n    (pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    pPVar5->recorder_ = (Plugin_recorder *)0x0;\n    this->plugins_ = pPVar5;\n  }" if (parenthesized_expression "(pPVar5 == (Plugin_manager *)0x0)" ( (binary_expression "pPVar5 == (Plugin_manager *)0x0" identifier == (cast_expression "(Plugin_manager *)0x0" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pPVar5 = (Plugin_manager *)operator_new(0xd8);\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;\n    pPVar5->options_ = this;\n    (pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0;\n    (pPVar5->current_)._M_node = (_List_node_base *)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0;\n    (pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0;\n    (pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0;\n    pPVar5->input_file_ = (Input_file *)0x0;\n    (pPVar5->plugin_input_file_).name = (char *)0x0;\n    (pPVar5->plugin_input_file_).fd = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;\n    *(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;\n    *(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;\n    (pPVar5->plugin_input_file_).handle = (void *)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;\n    (pPVar5->rescannable_).\n    super__Vector_base<gold::Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0;\n    (pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;\n    pPVar5->any_claimed_ = false;\n    pPVar5->in_replacement_phase_ = false;\n    pPVar5->any_added_ = false;\n    pPVar5->in_claim_file_handler_ = false;\n    pPVar5->workqueue_ = (Workqueue *)0x0;\n    pPVar5->task_ = (Task *)0x0;\n    pPVar5->input_objects_ = (Input_objects *)0x0;\n    pPVar5->symtab_ = (Symbol_table *)0x0;\n    pPVar5->layout_ = (Layout *)0x0;\n    pPVar5->dirpath_ = (Dirsearch *)0x0;\n    pPVar5->mapfile_ = (Mapfile *)0x0;\n    pPVar5->this_blocker_ = (Task_token *)0x0;\n    (pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;\n    (pPVar5->extra_search_path_)._M_string_length = 0;\n    (pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';\n    pPVar5->lock_ = (Lock *)0x0;\n                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */\n    Once::Once(&(pPVar5->initialize_lock_).super_Once);\n    (pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;\n    (pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    (pPVar5->current_)._M_node = (_List_node_base *)pPVar5;\n    (pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;\n    (pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;\n    (pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    (pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;\n    (pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;\n    (pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;\n    pPVar5->recorder_ = (Plugin_recorder *)0x0;\n    this->plugins_ = pPVar5;\n  }" { (expression_statement "pPVar5 = (Plugin_manager *)operator_new(0xd8);" (assignment_expression "pPVar5 = (Plugin_manager *)operator_new(0xd8)" identifier = (cast_expression "(Plugin_manager *)operator_new(0xd8)" ( (type_descriptor "Plugin_manager *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xd8)" identifier (argument_list "(0xd8)" ( number_literal ))))) ;) (expression_statement "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5;" (assignment_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev = (_List_node_base *)pPVar5" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_prev" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std" (binary_expression "(pPVar5->plugins_).super__List_base<gold" (field_expression "(pPVar5->plugins_).super__List_base" (parenthesized_expression "(pPVar5->plugins_)" ( (field_expression "pPVar5->plugins_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pPVar5" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5;" (assignment_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next = (_List_node_base *)pPVar5" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base._M_next" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node.super__List_node_base" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std" (binary_expression "(pPVar5->plugins_).super__List_base<gold" (field_expression "(pPVar5->plugins_).super__List_base" (parenthesized_expression "(pPVar5->plugins_)" ( (field_expression "pPVar5->plugins_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_List_node_base *)pPVar5" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pPVar5->options_ = this;" (assignment_expression "pPVar5->options_ = this" (field_expression "pPVar5->options_" identifier -> field_identifier) = identifier) ;) (expression_statement "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0;" (assignment_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size = 0" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node._M_size" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl.\n    _M_node" (field_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>._M_impl" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold" (binary_expression "(pPVar5->plugins_).super__List_base<gold::Plugin*,_std" (binary_expression "(pPVar5->plugins_).super__List_base<gold" (field_expression "(pPVar5->plugins_).super__List_base" (parenthesized_expression "(pPVar5->plugins_)" ( (field_expression "pPVar5->plugins_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pPVar5->current_)._M_node = (_List_node_base *)0x0;" (assignment_expression "(pPVar5->current_)._M_node = (_List_node_base *)0x0" (field_expression "(pPVar5->current_)._M_node" (parenthesized_expression "(pPVar5->current_)" ( (field_expression "pPVar5->current_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0;" (assignment_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start = (pointer)0x0" (field_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_start" (field_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std" (binary_expression "(pPVar5->objects_).super__Vector_base<gold" (field_expression "(pPVar5->objects_).super__Vector_base" (parenthesized_expression "(pPVar5->objects_)" ( (field_expression "pPVar5->objects_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Object" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Object" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0;" (assignment_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish = (pointer)0x0" (field_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_finish" (field_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std" (binary_expression "(pPVar5->objects_).super__Vector_base<gold" (field_expression "(pPVar5->objects_).super__Vector_base" (parenthesized_expression "(pPVar5->objects_)" ( (field_expression "pPVar5->objects_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Object" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Object" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0;" (assignment_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage = (pointer)0x0" (field_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl.\n    _M_end_of_storage" (field_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_>._M_impl" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold::Object*>_" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std::allocator<gold" (binary_expression "(pPVar5->objects_).super__Vector_base<gold::Object*,_std" (binary_expression "(pPVar5->objects_).super__Vector_base<gold" (field_expression "(pPVar5->objects_).super__Vector_base" (parenthesized_expression "(pPVar5->objects_)" ( (field_expression "pPVar5->objects_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Object" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Object" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0;" (assignment_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start =\n         (pointer)0x0" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_start" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base" (parenthesized_expression "(pPVar5->deferred_layout_objects_)" ( (field_expression "pPVar5->deferred_layout_objects_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0;" (assignment_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish =\n         (pointer)0x0" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_finish" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base" (parenthesized_expression "(pPVar5->deferred_layout_objects_)" ( (field_expression "pPVar5->deferred_layout_objects_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0;" (assignment_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage =\n         (pointer)0x0" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl._M_end_of_storage" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_>._M_impl" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold::Relobj*>_" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std::allocator<gold" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold::Relobj*,_std" (binary_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base<gold" (field_expression "(pPVar5->deferred_layout_objects_).\n    super__Vector_base" (parenthesized_expression "(pPVar5->deferred_layout_objects_)" ( (field_expression "pPVar5->deferred_layout_objects_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Relobj" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pPVar5->input_file_ = (Input_file *)0x0;" (assignment_expression "pPVar5->input_file_ = (Input_file *)0x0" (field_expression "pPVar5->input_file_" identifier -> field_identifier) = (cast_expression "(Input_file *)0x0" ( (type_descriptor "Input_file *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pPVar5->plugin_input_file_).name = (char *)0x0;" (assignment_expression "(pPVar5->plugin_input_file_).name = (char *)0x0" (field_expression "(pPVar5->plugin_input_file_).name" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pPVar5->plugin_input_file_).fd = 0;" (assignment_expression "(pPVar5->plugin_input_file_).fd = 0" (field_expression "(pPVar5->plugin_input_file_).fd" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0;" (assignment_expression "*(undefined4 *)&(pPVar5->plugin_input_file_).offset = 0" (pointer_expression "*(undefined4 *)&(pPVar5->plugin_input_file_).offset" * (cast_expression "(undefined4 *)&(pPVar5->plugin_input_file_).offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar5->plugin_input_file_).offset" & (field_expression "(pPVar5->plugin_input_file_).offset" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar5->plugin_input_file_).offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar5->plugin_input_file_).offset + 4)" ( (binary_expression "(int)&(pPVar5->plugin_input_file_).offset + 4" (cast_expression "(int)&(pPVar5->plugin_input_file_).offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar5->plugin_input_file_).offset" & (field_expression "(pPVar5->plugin_input_file_).offset" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0;" (assignment_expression "*(undefined4 *)&(pPVar5->plugin_input_file_).filesize = 0" (pointer_expression "*(undefined4 *)&(pPVar5->plugin_input_file_).filesize" * (cast_expression "(undefined4 *)&(pPVar5->plugin_input_file_).filesize" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar5->plugin_input_file_).filesize" & (field_expression "(pPVar5->plugin_input_file_).filesize" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar5->plugin_input_file_).filesize + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar5->plugin_input_file_).filesize + 4)" ( (binary_expression "(int)&(pPVar5->plugin_input_file_).filesize + 4" (cast_expression "(int)&(pPVar5->plugin_input_file_).filesize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar5->plugin_input_file_).filesize" & (field_expression "(pPVar5->plugin_input_file_).filesize" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pPVar5->plugin_input_file_).handle = (void *)0x0;" (assignment_expression "(pPVar5->plugin_input_file_).handle = (void *)0x0" (field_expression "(pPVar5->plugin_input_file_).handle" (parenthesized_expression "(pPVar5->plugin_input_file_)" ( (field_expression "pPVar5->plugin_input_file_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (ERROR "(pPVar5->rescannable_).\n    super__Vector_base<gold::" (binary_expression "(pPVar5->rescannable_).\n    super__Vector_base<gold" (field_expression "(pPVar5->rescannable_).\n    super__Vector_base" (parenthesized_expression "(pPVar5->rescannable_)" ( (field_expression "pPVar5->rescannable_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier (ERROR "::Rescannable,_std::allocator<gold:" : : (comma_expression "Rescannable,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Plugin_manager::Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0;" (assignment_expression "Rescannable>_>\n    ._M_impl._M_start = (pointer)0x0" (field_expression "Rescannable>_>\n    ._M_impl._M_start" (field_expression "Rescannable>_>\n    ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "(pPVar5->rescannable_).\n    super__Vector_base<gold::" (binary_expression "(pPVar5->rescannable_).\n    super__Vector_base<gold" (field_expression "(pPVar5->rescannable_).\n    super__Vector_base" (parenthesized_expression "(pPVar5->rescannable_)" ( (field_expression "pPVar5->rescannable_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier (ERROR "::Rescannable,_std::allocator<gold:" : : (comma_expression "Rescannable,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Plugin_manager::Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0;" (assignment_expression "Rescannable>_>\n    ._M_impl._M_finish = (pointer)0x0" (field_expression "Rescannable>_>\n    ._M_impl._M_finish" (field_expression "Rescannable>_>\n    ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (ERROR "(pPVar5->rescannable_).\n    super__Vector_base<gold::" (binary_expression "(pPVar5->rescannable_).\n    super__Vector_base<gold" (field_expression "(pPVar5->rescannable_).\n    super__Vector_base" (parenthesized_expression "(pPVar5->rescannable_)" ( (field_expression "pPVar5->rescannable_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Plugin_manager::Rescannable,_std::allocator<gold::Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier (ERROR "::Rescannable,_std::allocator<gold:" : : (comma_expression "Rescannable,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Plugin_manager::Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "Rescannable>_>\n    ._M_impl._M_end_of_storage = (pointer)0x0" (field_expression "Rescannable>_>\n    ._M_impl._M_end_of_storage" (field_expression "Rescannable>_>\n    ._M_impl" (binary_expression "Rescannable>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;))) (expression_statement "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0;" (assignment_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start = (pointer)0x0" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_start" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base" (parenthesized_expression "(pPVar5->undefined_symbols_)" ( (field_expression "pPVar5->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0;" (assignment_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish = (pointer)0x0" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_finish" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base" (parenthesized_expression "(pPVar5->undefined_symbols_)" ( (field_expression "pPVar5->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0;" (assignment_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage = (pointer)0x0" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl._M_end_of_storage" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n    _M_impl" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold::Symbol*,_std" (binary_expression "(pPVar5->undefined_symbols_).super__Vector_base<gold" (field_expression "(pPVar5->undefined_symbols_).super__Vector_base" (parenthesized_expression "(pPVar5->undefined_symbols_)" ( (field_expression "pPVar5->undefined_symbols_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) = (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "pPVar5->any_claimed_ = false;" (assignment_expression "pPVar5->any_claimed_ = false" (field_expression "pPVar5->any_claimed_" identifier -> field_identifier) = false) ;) (expression_statement "pPVar5->in_replacement_phase_ = false;" (assignment_expression "pPVar5->in_replacement_phase_ = false" (field_expression "pPVar5->in_replacement_phase_" identifier -> field_identifier) = false) ;) (expression_statement "pPVar5->any_added_ = false;" (assignment_expression "pPVar5->any_added_ = false" (field_expression "pPVar5->any_added_" identifier -> field_identifier) = false) ;) (expression_statement "pPVar5->in_claim_file_handler_ = false;" (assignment_expression "pPVar5->in_claim_file_handler_ = false" (field_expression "pPVar5->in_claim_file_handler_" identifier -> field_identifier) = false) ;) (expression_statement "pPVar5->workqueue_ = (Workqueue *)0x0;" (assignment_expression "pPVar5->workqueue_ = (Workqueue *)0x0" (field_expression "pPVar5->workqueue_" identifier -> field_identifier) = (cast_expression "(Workqueue *)0x0" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->task_ = (Task *)0x0;" (assignment_expression "pPVar5->task_ = (Task *)0x0" (field_expression "pPVar5->task_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->input_objects_ = (Input_objects *)0x0;" (assignment_expression "pPVar5->input_objects_ = (Input_objects *)0x0" (field_expression "pPVar5->input_objects_" identifier -> field_identifier) = (cast_expression "(Input_objects *)0x0" ( (type_descriptor "Input_objects *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->symtab_ = (Symbol_table *)0x0;" (assignment_expression "pPVar5->symtab_ = (Symbol_table *)0x0" (field_expression "pPVar5->symtab_" identifier -> field_identifier) = (cast_expression "(Symbol_table *)0x0" ( (type_descriptor "Symbol_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->layout_ = (Layout *)0x0;" (assignment_expression "pPVar5->layout_ = (Layout *)0x0" (field_expression "pPVar5->layout_" identifier -> field_identifier) = (cast_expression "(Layout *)0x0" ( (type_descriptor "Layout *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->dirpath_ = (Dirsearch *)0x0;" (assignment_expression "pPVar5->dirpath_ = (Dirsearch *)0x0" (field_expression "pPVar5->dirpath_" identifier -> field_identifier) = (cast_expression "(Dirsearch *)0x0" ( (type_descriptor "Dirsearch *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->mapfile_ = (Mapfile *)0x0;" (assignment_expression "pPVar5->mapfile_ = (Mapfile *)0x0" (field_expression "pPVar5->mapfile_" identifier -> field_identifier) = (cast_expression "(Mapfile *)0x0" ( (type_descriptor "Mapfile *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pPVar5->this_blocker_ = (Task_token *)0x0;" (assignment_expression "pPVar5->this_blocker_ = (Task_token *)0x0" (field_expression "pPVar5->this_blocker_" identifier -> field_identifier) = (cast_expression "(Task_token *)0x0" ( (type_descriptor "Task_token *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2;" (assignment_expression "(pPVar5->extra_search_path_)._M_dataplus._M_p = (pointer)&(pPVar5->extra_search_path_).field_2" (field_expression "(pPVar5->extra_search_path_)._M_dataplus._M_p" (field_expression "(pPVar5->extra_search_path_)._M_dataplus" (parenthesized_expression "(pPVar5->extra_search_path_)" ( (field_expression "pPVar5->extra_search_path_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(pPVar5->extra_search_path_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(pPVar5->extra_search_path_).field_2" (parenthesized_expression "(pPVar5->extra_search_path_)" ( (field_expression "pPVar5->extra_search_path_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(pPVar5->extra_search_path_)._M_string_length = 0;" (assignment_expression "(pPVar5->extra_search_path_)._M_string_length = 0" (field_expression "(pPVar5->extra_search_path_)._M_string_length" (parenthesized_expression "(pPVar5->extra_search_path_)" ( (field_expression "pPVar5->extra_search_path_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(pPVar5->extra_search_path_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(pPVar5->extra_search_path_).field_2._M_local_buf[0]" (field_expression "(pPVar5->extra_search_path_).field_2._M_local_buf" (field_expression "(pPVar5->extra_search_path_).field_2" (parenthesized_expression "(pPVar5->extra_search_path_)" ( (field_expression "pPVar5->extra_search_path_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pPVar5->lock_ = (Lock *)0x0;" (assignment_expression "pPVar5->lock_ = (Lock *)0x0" (field_expression "pPVar5->lock_" identifier -> field_identifier) = (cast_expression "(Lock *)0x0" ( (type_descriptor "Lock *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (labeled_statement "Once::Once(&(pPVar5->initialize_lock_).super_Once);" statement_identifier : (ERROR ":" :) (expression_statement "Once(&(pPVar5->initialize_lock_).super_Once);" (call_expression "Once(&(pPVar5->initialize_lock_).super_Once)" identifier (argument_list "(&(pPVar5->initialize_lock_).super_Once)" ( (pointer_expression "&(pPVar5->initialize_lock_).super_Once" & (field_expression "(pPVar5->initialize_lock_).super_Once" (parenthesized_expression "(pPVar5->initialize_lock_)" ( (field_expression "pPVar5->initialize_lock_" identifier -> field_identifier) )) . field_identifier)) ))) ;)) (expression_statement "(pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_;" (assignment_expression "(pPVar5->initialize_lock_).pplock_ = &pPVar5->lock_" (field_expression "(pPVar5->initialize_lock_).pplock_" (parenthesized_expression "(pPVar5->initialize_lock_)" ( (field_expression "pPVar5->initialize_lock_" identifier -> field_identifier) )) . field_identifier) = (pointer_expression "&pPVar5->lock_" & (field_expression "pPVar5->lock_" identifier -> field_identifier))) ;) (expression_statement "(pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c;" (assignment_expression "(pPVar5->initialize_lock_).super_Once._vptr_Once =\n         (_func_int_varargs **)&PTR__Initialize_lock_0033372c" (field_expression "(pPVar5->initialize_lock_).super_Once._vptr_Once" (field_expression "(pPVar5->initialize_lock_).super_Once" (parenthesized_expression "(pPVar5->initialize_lock_)" ( (field_expression "pPVar5->initialize_lock_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(_func_int_varargs **)&PTR__Initialize_lock_0033372c" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&PTR__Initialize_lock_0033372c" & identifier))) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    }" { (expression_statement "*(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0;" (assignment_expression "*(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6) = 0" (pointer_expression "*(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6)" * (cast_expression "(undefined4 *)((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6)" ( (binary_expression "(int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets + uVar6" (cast_expression "(int)&(pPVar5->defsym_defines_set_)._M_h._M_buckets" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar5->defsym_defines_set_)._M_h._M_buckets" & (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_buckets" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) + identifier) )))) = number_literal) ;) (expression_statement "uVar6 = uVar6 + 4;" (assignment_expression "uVar6 = uVar6 + 4" identifier = (binary_expression "uVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < 0x1c)" ( (binary_expression "uVar6 < 0x1c" identifier < number_literal) )) ;) (expression_statement "(pPVar5->current_)._M_node = (_List_node_base *)pPVar5;" (assignment_expression "(pPVar5->current_)._M_node = (_List_node_base *)pPVar5" (field_expression "(pPVar5->current_)._M_node" (parenthesized_expression "(pPVar5->current_)" ( (field_expression "pPVar5->current_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_List_node_base *)pPVar5" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_buckets =\n         &(pPVar5->defsym_defines_set_)._M_h._M_single_bucket" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_buckets" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (pointer_expression "&(pPVar5->defsym_defines_set_)._M_h._M_single_bucket" & (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_single_bucket" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_bucket_count = 1" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_bucket_count" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_before_begin._M_nxt" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_before_begin" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_element_count = 0;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_element_count = 0" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_element_count" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_rehash_policy" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pPVar5->defsym_defines_set_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(pPVar5->defsym_defines_set_)._M_h._M_single_bucket" (field_expression "(pPVar5->defsym_defines_set_)._M_h" (parenthesized_expression "(pPVar5->defsym_defines_set_)" ( (field_expression "pPVar5->defsym_defines_set_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "pPVar5->recorder_ = (Plugin_recorder *)0x0;" (assignment_expression "pPVar5->recorder_ = (Plugin_recorder *)0x0" (field_expression "pPVar5->recorder_" identifier -> field_identifier) = (cast_expression "(Plugin_recorder *)0x0" ( (type_descriptor "Plugin_recorder *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "this->plugins_ = pPVar5;" (assignment_expression "this->plugins_ = pPVar5" (field_expression "this->plugins_" identifier -> field_identifier) = identifier) ;) })) (expression_statement "p_Var2 = (_List_node_base *)operator_new(0x3c);" (assignment_expression "p_Var2 = (_List_node_base *)operator_new(0x3c)" identifier = (cast_expression "(_List_node_base *)operator_new(0x3c)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x3c)" identifier (argument_list "(0x3c)" ( number_literal ))))) ;) (expression_statement "p_Var2->_M_next = (_List_node_base *)0x0;" (assignment_expression "p_Var2->_M_next = (_List_node_base *)0x0" (field_expression "p_Var2->_M_next" identifier -> field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2->_M_prev = (_List_node_base *)&p_Var2[1]._M_prev;" (assignment_expression "p_Var2->_M_prev = (_List_node_base *)&p_Var2[1]._M_prev" (field_expression "p_Var2->_M_prev" identifier -> field_identifier) = (cast_expression "(_List_node_base *)&p_Var2[1]._M_prev" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var2[1]._M_prev" & (field_expression "p_Var2[1]._M_prev" (subscript_expression "p_Var2[1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "pcVar3 = (char *)0xffffffff;" (assignment_expression "pcVar3 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (filename != (char *)0x0) {\n    sVar4 = strlen(filename);\n    pcVar3 = filename + sVar4;\n  }" if (parenthesized_expression "(filename != (char *)0x0)" ( (binary_expression "filename != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar4 = strlen(filename);\n    pcVar3 = filename + sVar4;\n  }" { (expression_statement "sVar4 = strlen(filename);" (assignment_expression "sVar4 = strlen(filename)" identifier = (call_expression "strlen(filename)" identifier (argument_list "(filename)" ( identifier )))) ;) (expression_statement "pcVar3 = filename + sVar4;" (assignment_expression "pcVar3 = filename + sVar4" identifier = (binary_expression "filename + sVar4" identifier + identifier)) ;) })) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0);" (binary_expression "_M_construct<char_const*>\n            ((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0)" ( (comma_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev,\n             filename,pcVar3,0" (binary_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&p_Var2->_M_prev" (parenthesized_expression "(basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)" ( (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_> *" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*" * identifier)) )) & (field_expression "p_Var2->_M_prev" identifier -> field_identifier)) , (comma_expression "filename,pcVar3,0" identifier , (comma_expression "pcVar3,0" identifier , number_literal))) ))) ;)) (expression_statement "p_Var2[3]._M_prev = (_List_node_base *)0x0;" (assignment_expression "p_Var2[3]._M_prev = (_List_node_base *)0x0" (field_expression "p_Var2[3]._M_prev" (subscript_expression "p_Var2[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2[4]._M_next = (_List_node_base *)0x0;" (assignment_expression "p_Var2[4]._M_next = (_List_node_base *)0x0" (field_expression "p_Var2[4]._M_next" (subscript_expression "p_Var2[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2[4]._M_prev = (_List_node_base *)0x0;" (assignment_expression "p_Var2[4]._M_prev = (_List_node_base *)0x0" (field_expression "p_Var2[4]._M_prev" (subscript_expression "p_Var2[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2[5]._M_next = (_List_node_base *)0x0;" (assignment_expression "p_Var2[5]._M_next = (_List_node_base *)0x0" (field_expression "p_Var2[5]._M_next" (subscript_expression "p_Var2[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2[5]._M_prev = (_List_node_base *)0x0;" (assignment_expression "p_Var2[5]._M_prev = (_List_node_base *)0x0" (field_expression "p_Var2[5]._M_prev" (subscript_expression "p_Var2[5]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2[6]._M_next = (_List_node_base *)0x0;" (assignment_expression "p_Var2[6]._M_next = (_List_node_base *)0x0" (field_expression "p_Var2[6]._M_next" (subscript_expression "p_Var2[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var2[6]._M_prev = (_List_node_base *)0x0;" (assignment_expression "p_Var2[6]._M_prev = (_List_node_base *)0x0" (field_expression "p_Var2[6]._M_prev" (subscript_expression "p_Var2[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)0x0" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined1 *)&p_Var2[7]._M_next = 0;" (assignment_expression "*(undefined1 *)&p_Var2[7]._M_next = 0" (pointer_expression "*(undefined1 *)&p_Var2[7]._M_next" * (cast_expression "(undefined1 *)&p_Var2[7]._M_next" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var2[7]._M_next" & (field_expression "p_Var2[7]._M_next" (subscript_expression "p_Var2[7]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "this_00 = (_List_node_base *)operator_new(0xc);" (assignment_expression "this_00 = (_List_node_base *)operator_new(0xc)" identifier = (cast_expression "(_List_node_base *)operator_new(0xc)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "this_00[1]._M_next = p_Var2;" (assignment_expression "this_00[1]._M_next = p_Var2" (field_expression "this_00[1]._M_next" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "_List_node_base::_M_hook(this_00,(_List_node_base *)pPVar5);" statement_identifier : (ERROR ":" :) (expression_statement "_M_hook(this_00,(_List_node_base *)pPVar5);" (call_expression "_M_hook(this_00,(_List_node_base *)pPVar5)" identifier (argument_list "(this_00,(_List_node_base *)pPVar5)" ( identifier , (cast_expression "(_List_node_base *)pPVar5" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)))) (expression_statement "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl._M_node._M_size;" (field_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl._M_node._M_size" (field_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl._M_node" (field_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_>.\n            _M_impl" (binary_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold::Plugin*>_" (binary_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std::allocator<gold" (binary_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold::Plugin*,_std" (assignment_expression "psVar1 = &(pPVar5->plugins_).super__List_base<gold" identifier = (binary_expression "&(pPVar5->plugins_).super__List_base<gold" (pointer_expression "&(pPVar5->plugins_).super__List_base" & (field_expression "(pPVar5->plugins_).super__List_base" (parenthesized_expression "(pPVar5->plugins_)" ( (field_expression "pPVar5->plugins_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Plugin" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Plugin" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) ;) (expression_statement "*psVar1 = *psVar1 + 1;" (assignment_expression "*psVar1 = *psVar1 + 1" (pointer_expression "*psVar1" * identifier) = (binary_expression "*psVar1 + 1" (pointer_expression "*psVar1" * identifier) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000d8ab0(int param_1,char *param_2)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    \n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}\n\n" (function_definition "void FUN_000d8ab0(int param_1,char *param_2)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    \n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}" primitive_type (function_declarator "FUN_000d8ab0(int param_1,char *param_2)" identifier (parameter_list "(int param_1,char *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    \n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x593c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x593c)" identifier = (pointer_expression "*(int *)(param_1 + 0x593c)" * (cast_expression "(int *)(param_1 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x593c)" ( (binary_expression "param_1 + 0x593c" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }" { (expression_statement "iVar5 = FUN_001aa8c0(0xd8);" (assignment_expression "iVar5 = FUN_001aa8c0(0xd8)" identifier = (call_expression "FUN_001aa8c0(0xd8)" identifier (argument_list "(0xd8)" ( number_literal )))) ;) (expression_statement "*(int *)(iVar5 + 4) = iVar5;" (assignment_expression "*(int *)(iVar5 + 4) = iVar5" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)iVar5 = iVar5;" (assignment_expression "*(int *)iVar5 = iVar5" (pointer_expression "*(int *)iVar5" * (cast_expression "(int *)iVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)(iVar5 + 100) = param_1;" (assignment_expression "*(int *)(iVar5 + 100) = param_1" (pointer_expression "*(int *)(iVar5 + 100)" * (cast_expression "(int *)(iVar5 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 100)" ( (binary_expression "iVar5 + 100" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 8)" * (cast_expression "(undefined4 *)(iVar5 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" * (cast_expression "(undefined4 *)(iVar5 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x20)" * (cast_expression "(undefined4 *)(iVar5 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" * (cast_expression "(undefined4 *)(iVar5 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x28)" * (cast_expression "(undefined4 *)(iVar5 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" * (cast_expression "(undefined4 *)(iVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" * (cast_expression "(undefined4 *)(iVar5 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x34)" ( (binary_expression "iVar5 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x38)" * (cast_expression "(undefined4 *)(iVar5 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x3c)" * (cast_expression "(undefined4 *)(iVar5 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x3c)" ( (binary_expression "iVar5 + 0x3c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x40)" * (cast_expression "(undefined4 *)(iVar5 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x40)" ( (binary_expression "iVar5 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x44) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x44)" * (cast_expression "(undefined4 *)(iVar5 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x44)" ( (binary_expression "iVar5 + 0x44" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x48) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x48)" * (cast_expression "(undefined4 *)(iVar5 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x4c)" * (cast_expression "(undefined4 *)(iVar5 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x50) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x50)" * (cast_expression "(undefined4 *)(iVar5 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x50)" ( (binary_expression "iVar5 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x54) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x54) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x54)" * (cast_expression "(undefined4 *)(iVar5 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x54)" ( (binary_expression "iVar5 + 0x54" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x58)" * (cast_expression "(undefined4 *)(iVar5 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x58)" ( (binary_expression "iVar5 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x5c)" * (cast_expression "(undefined4 *)(iVar5 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x5c)" ( (binary_expression "iVar5 + 0x5c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x60)" * (cast_expression "(undefined4 *)(iVar5 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x60)" ( (binary_expression "iVar5 + 0x60" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x68) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x68)" * (cast_expression "(undefined4 *)(iVar5 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x68)" ( (binary_expression "iVar5 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x6c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x6c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x6c)" * (cast_expression "(undefined4 *)(iVar5 + 0x6c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x6c)" ( (binary_expression "iVar5 + 0x6c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x70)" * (cast_expression "(undefined4 *)(iVar5 + 0x70)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x70)" ( (binary_expression "iVar5 + 0x70" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x74) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x74)" * (cast_expression "(undefined4 *)(iVar5 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x74)" ( (binary_expression "iVar5 + 0x74" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x78)" * (cast_expression "(undefined4 *)(iVar5 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x78)" ( (binary_expression "iVar5 + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x7c)" * (cast_expression "(undefined4 *)(iVar5 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x7c)" ( (binary_expression "iVar5 + 0x7c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x80) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x80)" * (cast_expression "(undefined4 *)(iVar5 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x80)" ( (binary_expression "iVar5 + 0x80" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x84) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x84)" * (cast_expression "(undefined4 *)(iVar5 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x84)" ( (binary_expression "iVar5 + 0x84" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar5 + 0x88) = iVar5 + 0x90;" (assignment_expression "*(int *)(iVar5 + 0x88) = iVar5 + 0x90" (pointer_expression "*(int *)(iVar5 + 0x88)" * (cast_expression "(int *)(iVar5 + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x88)" ( (binary_expression "iVar5 + 0x88" identifier + number_literal) )))) = (binary_expression "iVar5 + 0x90" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x8c)" * (cast_expression "(undefined4 *)(iVar5 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x8c)" ( (binary_expression "iVar5 + 0x8c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar5 + 0x90) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + 0x90) = 0" (pointer_expression "*(undefined1 *)(iVar5 + 0x90)" * (cast_expression "(undefined1 *)(iVar5 + 0x90)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x90)" ( (binary_expression "iVar5 + 0x90" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xa0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xa0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xa0)" * (cast_expression "(undefined4 *)(iVar5 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xa0)" ( (binary_expression "iVar5 + 0xa0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0008e690(iVar5 + 0xa4);" (call_expression "FUN_0008e690(iVar5 + 0xa4)" identifier (argument_list "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) ))) ;) (expression_statement "*(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;" (assignment_expression "*(int *)(iVar5 + 0xb4) = iVar5 + 0xa0" (pointer_expression "*(int *)(iVar5 + 0xb4)" * (cast_expression "(int *)(iVar5 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xb4)" ( (binary_expression "iVar5 + 0xb4" identifier + number_literal) )))) = (binary_expression "iVar5 + 0xa0" identifier + number_literal)) ;) (expression_statement "*(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;" (assignment_expression "*(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c" (pointer_expression "*(undefined ***)(iVar5 + 0xa4)" * (cast_expression "(undefined ***)(iVar5 + 0xa4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) )))) = (pointer_expression "&PTR_FUN_0033372c" & identifier)) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);" do (compound_statement "{\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    }" { (expression_statement "*(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xb8 + uVar6)" * (cast_expression "(undefined4 *)(iVar5 + 0xb8 + uVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xb8 + uVar6)" ( (binary_expression "iVar5 + 0xb8 + uVar6" (binary_expression "iVar5 + 0xb8" identifier + number_literal) + identifier) )))) = number_literal) ;) (expression_statement "uVar6 = uVar6 + 4;" (assignment_expression "uVar6 = uVar6 + 4" identifier = (binary_expression "uVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < 0x1c)" ( (binary_expression "uVar6 < 0x1c" identifier < number_literal) )) ;) (expression_statement "*(int *)(iVar5 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar5 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;" (assignment_expression "*(int *)(iVar5 + 0xb8) = iVar5 + 0xd0" (pointer_expression "*(int *)(iVar5 + 0xb8)" * (cast_expression "(int *)(iVar5 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xb8)" ( (binary_expression "iVar5 + 0xb8" identifier + number_literal) )))) = (binary_expression "iVar5 + 0xd0" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xbc) = 1;" (assignment_expression "*(undefined4 *)(iVar5 + 0xbc) = 1" (pointer_expression "*(undefined4 *)(iVar5 + 0xbc)" * (cast_expression "(undefined4 *)(iVar5 + 0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xbc)" ( (binary_expression "iVar5 + 0xbc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc0)" * (cast_expression "(undefined4 *)(iVar5 + 0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc0)" ( (binary_expression "iVar5 + 0xc0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc4)" * (cast_expression "(undefined4 *)(iVar5 + 0xc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc4)" ( (binary_expression "iVar5 + 0xc4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 200) = 0x3f800000;" (assignment_expression "*(undefined4 *)(iVar5 + 200) = 0x3f800000" (pointer_expression "*(undefined4 *)(iVar5 + 200)" * (cast_expression "(undefined4 *)(iVar5 + 200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 200)" ( (binary_expression "iVar5 + 200" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xcc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xcc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xcc)" * (cast_expression "(undefined4 *)(iVar5 + 0xcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xcc)" ( (binary_expression "iVar5 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xd0)" * (cast_expression "(undefined4 *)(iVar5 + 0xd0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd0)" ( (binary_expression "iVar5 + 0xd0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xd4)" * (cast_expression "(undefined4 *)(iVar5 + 0xd4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd4)" ( (binary_expression "iVar5 + 0xd4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_1 + 0x593c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x593c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x593c)" * (cast_expression "(int *)(param_1 + 0x593c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x593c)" ( (binary_expression "param_1 + 0x593c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);" (assignment_expression "puVar1 = (undefined4 *)FUN_001aa8c0(0x3c)" identifier = (cast_expression "(undefined4 *)FUN_001aa8c0(0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001aa8c0(0x3c)" identifier (argument_list "(0x3c)" ( number_literal ))))) ;) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = puVar1 + 3;" (assignment_expression "puVar1[1] = puVar1 + 3" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (binary_expression "puVar1 + 3" identifier + number_literal)) ;) (expression_statement "pcVar2 = (char *)0xffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }" if (parenthesized_expression "(param_2 != (char *)0x0)" ( (binary_expression "param_2 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }" { (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "pcVar2 = param_2 + sVar3;" (assignment_expression "pcVar2 = param_2 + sVar3" identifier = (binary_expression "param_2 + sVar3" identifier + identifier)) ;) })) (expression_statement "FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);" (call_expression "FUN_00056c80(puVar1 + 1,param_2,pcVar2,0)" identifier (argument_list "(puVar1 + 1,param_2,pcVar2,0)" ( (binary_expression "puVar1 + 1" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[10] = 0;" (assignment_expression "puVar1[10] = 0" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[0xb] = 0;" (assignment_expression "puVar1[0xb] = 0" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[0xc] = 0;" (assignment_expression "puVar1[0xc] = 0" (subscript_expression "puVar1[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[0xd] = 0;" (assignment_expression "puVar1[0xd] = 0" (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar1 + 0xe) = 0;" (assignment_expression "*(undefined1 *)(puVar1 + 0xe) = 0" (pointer_expression "*(undefined1 *)(puVar1 + 0xe)" * (cast_expression "(undefined1 *)(puVar1 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xe)" ( (binary_expression "puVar1 + 0xe" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = FUN_001aa8c0(0xc);" (assignment_expression "iVar4 = FUN_001aa8c0(0xc)" identifier = (call_expression "FUN_001aa8c0(0xc)" identifier (argument_list "(0xc)" ( number_literal )))) ;) (expression_statement "*(undefined4 **)(iVar4 + 8) = puVar1;" (assignment_expression "*(undefined4 **)(iVar4 + 8) = puVar1" (pointer_expression "*(undefined4 **)(iVar4 + 8)" * (cast_expression "(undefined4 **)(iVar4 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001af630(iVar4,iVar5);" (call_expression "FUN_001af630(iVar4,iVar5)" identifier (argument_list "(iVar4,iVar5)" ( identifier , identifier ))) ;) (expression_statement "*(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;" (assignment_expression "*(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar5 + 8) + 1" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + 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 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 (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + 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 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 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 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 IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression 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 (subscript_expression 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 (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 IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_000d8ab0(int param_1,char *param_2)\n\n{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    \n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000d8ab0(int param_1,char *param_2)" (identifier "FUN_000d8ab0") (parameter_list "(int param_1,char *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  char *pcVar2;\n  size_t sVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  \n  iVar5 = *(int *)(param_1 + 0x593c);\n  if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }\n  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);\n  *puVar1 = 0;\n  puVar1[1] = puVar1 + 3;\n  pcVar2 = (char *)0xffffffff;\n  if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }\n                    \n  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  puVar1[10] = 0;\n  puVar1[0xb] = 0;\n  puVar1[0xc] = 0;\n  puVar1[0xd] = 0;\n  *(undefined1 *)(puVar1 + 0xe) = 0;\n  iVar4 = FUN_001aa8c0(0xc);\n  *(undefined4 **)(iVar4 + 8) = puVar1;\n  FUN_001af630(iVar4,iVar5);\n  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x593c);" (assignment_expression "iVar5 = *(int *)(param_1 + 0x593c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(param_1 + 0x593c)" (* "*") (cast_expression "(int *)(param_1 + 0x593c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x593c)" (( "(") (binary_expression "param_1 + 0x593c" (identifier "param_1") (+ "+") (number_literal "0x593c")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = FUN_001aa8c0(0xd8);\n    *(int *)(iVar5 + 4) = iVar5;\n    *(int *)iVar5 = iVar5;\n    *(int *)(iVar5 + 100) = param_1;\n    *(undefined4 *)(iVar5 + 8) = 0;\n    *(undefined4 *)(iVar5 + 0xc) = 0;\n    *(undefined4 *)(iVar5 + 0x10) = 0;\n    *(undefined4 *)(iVar5 + 0x14) = 0;\n    *(undefined4 *)(iVar5 + 0x18) = 0;\n    *(undefined4 *)(iVar5 + 0x1c) = 0;\n    *(undefined4 *)(iVar5 + 0x20) = 0;\n    *(undefined4 *)(iVar5 + 0x24) = 0;\n    *(undefined4 *)(iVar5 + 0x28) = 0;\n    *(undefined4 *)(iVar5 + 0x2c) = 0;\n    *(undefined4 *)(iVar5 + 0x30) = 0;\n    *(undefined4 *)(iVar5 + 0x34) = 0;\n    *(undefined4 *)(iVar5 + 0x38) = 0;\n    *(undefined4 *)(iVar5 + 0x3c) = 0;\n    *(undefined4 *)(iVar5 + 0x40) = 0;\n    *(undefined4 *)(iVar5 + 0x44) = 0;\n    *(undefined4 *)(iVar5 + 0x48) = 0;\n    *(undefined4 *)(iVar5 + 0x4c) = 0;\n    *(undefined4 *)(iVar5 + 0x50) = 0;\n    *(undefined4 *)(iVar5 + 0x54) = 0;\n    *(undefined4 *)(iVar5 + 0x58) = 0;\n    *(undefined4 *)(iVar5 + 0x5c) = 0;\n    *(undefined4 *)(iVar5 + 0x60) = 0;\n    *(undefined4 *)(iVar5 + 0x68) = 0;\n    *(undefined4 *)(iVar5 + 0x6c) = 0;\n    *(undefined4 *)(iVar5 + 0x70) = 0;\n    *(undefined4 *)(iVar5 + 0x74) = 0;\n    *(undefined4 *)(iVar5 + 0x78) = 0;\n    *(undefined4 *)(iVar5 + 0x7c) = 0;\n    *(undefined4 *)(iVar5 + 0x80) = 0;\n    *(undefined4 *)(iVar5 + 0x84) = 0;\n    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;\n    *(undefined4 *)(iVar5 + 0x8c) = 0;\n    *(undefined1 *)(iVar5 + 0x90) = 0;\n    *(undefined4 *)(iVar5 + 0xa0) = 0;\n                    \n    FUN_0008e690(iVar5 + 0xa4);\n    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;\n    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;\n    uVar6 = 0;\n    do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);\n    *(int *)(iVar5 + 0xc) = iVar5;\n    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;\n    *(undefined4 *)(iVar5 + 0xbc) = 1;\n    *(undefined4 *)(iVar5 + 0xc0) = 0;\n    *(undefined4 *)(iVar5 + 0xc4) = 0;\n    *(undefined4 *)(iVar5 + 200) = 0x3f800000;\n    *(undefined4 *)(iVar5 + 0xcc) = 0;\n    *(undefined4 *)(iVar5 + 0xd0) = 0;\n    *(undefined4 *)(iVar5 + 0xd4) = 0;\n    *(int *)(param_1 + 0x593c) = iVar5;\n  }" ({ "{") (expression_statement "iVar5 = FUN_001aa8c0(0xd8);" (assignment_expression "iVar5 = FUN_001aa8c0(0xd8)" (identifier "iVar5") (= "=") (call_expression "FUN_001aa8c0(0xd8)" (identifier "FUN_001aa8c0") (argument_list "(0xd8)" (( "(") (number_literal "0xd8") () ")")))) (; ";")) (expression_statement "*(int *)(iVar5 + 4) = iVar5;" (assignment_expression "*(int *)(iVar5 + 4) = iVar5" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)iVar5 = iVar5;" (assignment_expression "*(int *)iVar5 = iVar5" (pointer_expression "*(int *)iVar5" (* "*") (cast_expression "(int *)iVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar5"))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar5 + 100) = param_1;" (assignment_expression "*(int *)(iVar5 + 100) = param_1" (pointer_expression "*(int *)(iVar5 + 100)" (* "*") (cast_expression "(int *)(iVar5 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 100)" (( "(") (binary_expression "iVar5 + 100" (identifier "iVar5") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x18) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x20) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x20) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x20)" (( "(") (binary_expression "iVar5 + 0x20" (identifier "iVar5") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x28) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x28) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x30)" (( "(") (binary_expression "iVar5 + 0x30" (identifier "iVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x34)" (( "(") (binary_expression "iVar5 + 0x34" (identifier "iVar5") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x38) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x38)" (( "(") (binary_expression "iVar5 + 0x38" (identifier "iVar5") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x3c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x3c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x3c)" (( "(") (binary_expression "iVar5 + 0x3c" (identifier "iVar5") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x40) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x40)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x40)" (( "(") (binary_expression "iVar5 + 0x40" (identifier "iVar5") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x44) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x44) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x44)" (( "(") (binary_expression "iVar5 + 0x44" (identifier "iVar5") (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x48) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x50) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x50)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x50)" (( "(") (binary_expression "iVar5 + 0x50" (identifier "iVar5") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x54) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x54) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x54)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x54)" (( "(") (binary_expression "iVar5 + 0x54" (identifier "iVar5") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x58)" (( "(") (binary_expression "iVar5 + 0x58" (identifier "iVar5") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x5c)" (( "(") (binary_expression "iVar5 + 0x5c" (identifier "iVar5") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x60) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x60) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x60)" (( "(") (binary_expression "iVar5 + 0x60" (identifier "iVar5") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x68) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x68)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x68)" (( "(") (binary_expression "iVar5 + 0x68" (identifier "iVar5") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x6c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x6c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x6c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x6c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x6c)" (( "(") (binary_expression "iVar5 + 0x6c" (identifier "iVar5") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x70) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x70) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x70)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x70)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x70)" (( "(") (binary_expression "iVar5 + 0x70" (identifier "iVar5") (+ "+") (number_literal "0x70")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x74) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x74) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x74)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x74)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x74)" (( "(") (binary_expression "iVar5 + 0x74" (identifier "iVar5") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x78) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x78) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x78)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x78)" (( "(") (binary_expression "iVar5 + 0x78" (identifier "iVar5") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x7c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x7c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x7c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x7c)" (( "(") (binary_expression "iVar5 + 0x7c" (identifier "iVar5") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x80) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x80) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x80)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x80)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x80)" (( "(") (binary_expression "iVar5 + 0x80" (identifier "iVar5") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x84) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x84) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x84)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x84)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x84)" (( "(") (binary_expression "iVar5 + 0x84" (identifier "iVar5") (+ "+") (number_literal "0x84")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(iVar5 + 0x88) = iVar5 + 0x90;" (assignment_expression "*(int *)(iVar5 + 0x88) = iVar5 + 0x90" (pointer_expression "*(int *)(iVar5 + 0x88)" (* "*") (cast_expression "(int *)(iVar5 + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x88)" (( "(") (binary_expression "iVar5 + 0x88" (identifier "iVar5") (+ "+") (number_literal "0x88")) () ")")))) (= "=") (binary_expression "iVar5 + 0x90" (identifier "iVar5") (+ "+") (number_literal "0x90"))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x8c) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x8c) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x8c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x8c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x8c)" (( "(") (binary_expression "iVar5 + 0x8c" (identifier "iVar5") (+ "+") (number_literal "0x8c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar5 + 0x90) = 0;" (assignment_expression "*(undefined1 *)(iVar5 + 0x90) = 0" (pointer_expression "*(undefined1 *)(iVar5 + 0x90)" (* "*") (cast_expression "(undefined1 *)(iVar5 + 0x90)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x90)" (( "(") (binary_expression "iVar5 + 0x90" (identifier "iVar5") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xa0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xa0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xa0)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xa0)" (( "(") (binary_expression "iVar5 + 0xa0" (identifier "iVar5") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0008e690(iVar5 + 0xa4);" (call_expression "FUN_0008e690(iVar5 + 0xa4)" (identifier "FUN_0008e690") (argument_list "(iVar5 + 0xa4)" (( "(") (binary_expression "iVar5 + 0xa4" (identifier "iVar5") (+ "+") (number_literal "0xa4")) () ")"))) (; ";")) (expression_statement "*(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;" (assignment_expression "*(int *)(iVar5 + 0xb4) = iVar5 + 0xa0" (pointer_expression "*(int *)(iVar5 + 0xb4)" (* "*") (cast_expression "(int *)(iVar5 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xb4)" (( "(") (binary_expression "iVar5 + 0xb4" (identifier "iVar5") (+ "+") (number_literal "0xb4")) () ")")))) (= "=") (binary_expression "iVar5 + 0xa0" (identifier "iVar5") (+ "+") (number_literal "0xa0"))) (; ";")) (expression_statement "*(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;" (assignment_expression "*(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c" (pointer_expression "*(undefined ***)(iVar5 + 0xa4)" (* "*") (cast_expression "(undefined ***)(iVar5 + 0xa4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(iVar5 + 0xa4)" (( "(") (binary_expression "iVar5 + 0xa4" (identifier "iVar5") (+ "+") (number_literal "0xa4")) () ")")))) (= "=") (pointer_expression "&PTR_FUN_0033372c" (& "&") (identifier "PTR_FUN_0033372c"))) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    } while (uVar6 < 0x1c);" (do "do") (compound_statement "{\n      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;\n      uVar6 = uVar6 + 4;\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xb8 + uVar6)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xb8 + uVar6)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xb8 + uVar6)" (( "(") (binary_expression "iVar5 + 0xb8 + uVar6" (binary_expression "iVar5 + 0xb8" (identifier "iVar5") (+ "+") (number_literal "0xb8")) (+ "+") (identifier "uVar6")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = uVar6 + 4;" (assignment_expression "uVar6 = uVar6 + 4" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 4" (identifier "uVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar6 < 0x1c)" (( "(") (binary_expression "uVar6 < 0x1c" (identifier "uVar6") (< "<") (number_literal "0x1c")) () ")")) (; ";")) (expression_statement "*(int *)(iVar5 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar5 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;" (assignment_expression "*(int *)(iVar5 + 0xb8) = iVar5 + 0xd0" (pointer_expression "*(int *)(iVar5 + 0xb8)" (* "*") (cast_expression "(int *)(iVar5 + 0xb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xb8)" (( "(") (binary_expression "iVar5 + 0xb8" (identifier "iVar5") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (binary_expression "iVar5 + 0xd0" (identifier "iVar5") (+ "+") (number_literal "0xd0"))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xbc) = 1;" (assignment_expression "*(undefined4 *)(iVar5 + 0xbc) = 1" (pointer_expression "*(undefined4 *)(iVar5 + 0xbc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xbc)" (( "(") (binary_expression "iVar5 + 0xbc" (identifier "iVar5") (+ "+") (number_literal "0xbc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xc0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc0)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc0)" (( "(") (binary_expression "iVar5 + 0xc0" (identifier "iVar5") (+ "+") (number_literal "0xc0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xc4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc4)" (( "(") (binary_expression "iVar5 + 0xc4" (identifier "iVar5") (+ "+") (number_literal "0xc4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 200) = 0x3f800000;" (assignment_expression "*(undefined4 *)(iVar5 + 200) = 0x3f800000" (pointer_expression "*(undefined4 *)(iVar5 + 200)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 200)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 200)" (( "(") (binary_expression "iVar5 + 200" (identifier "iVar5") (+ "+") (number_literal "200")) () ")")))) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xcc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xcc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xcc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xcc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xcc)" (( "(") (binary_expression "iVar5 + 0xcc" (identifier "iVar5") (+ "+") (number_literal "0xcc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xd0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xd0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xd0)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xd0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xd0)" (( "(") (binary_expression "iVar5 + 0xd0" (identifier "iVar5") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xd4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xd4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xd4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xd4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xd4)" (( "(") (binary_expression "iVar5 + 0xd4" (identifier "iVar5") (+ "+") (number_literal "0xd4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_1 + 0x593c) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x593c) = iVar5" (pointer_expression "*(int *)(param_1 + 0x593c)" (* "*") (cast_expression "(int *)(param_1 + 0x593c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x593c)" (( "(") (binary_expression "param_1 + 0x593c" (identifier "param_1") (+ "+") (number_literal "0x593c")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);" (assignment_expression "puVar1 = (undefined4 *)FUN_001aa8c0(0x3c)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)FUN_001aa8c0(0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001aa8c0(0x3c)" (identifier "FUN_001aa8c0") (argument_list "(0x3c)" (( "(") (number_literal "0x3c") () ")"))))) (; ";")) (expression_statement "*puVar1 = 0;" (assignment_expression "*puVar1 = 0" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = puVar1 + 3;" (assignment_expression "puVar1[1] = puVar1 + 3" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar1 + 3" (identifier "puVar1") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pcVar2 = (char *)0xffffffff;" (assignment_expression "pcVar2 = (char *)0xffffffff" (identifier "pcVar2") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (param_2 != (char *)0x0) {\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }" (if "if") (parenthesized_expression "(param_2 != (char *)0x0)" (( "(") (binary_expression "param_2 != (char *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar3 = strlen(param_2);\n    pcVar2 = param_2 + sVar3;\n  }" ({ "{") (expression_statement "sVar3 = strlen(param_2);" (assignment_expression "sVar3 = strlen(param_2)" (identifier "sVar3") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "pcVar2 = param_2 + sVar3;" (assignment_expression "pcVar2 = param_2 + sVar3" (identifier "pcVar2") (= "=") (binary_expression "param_2 + sVar3" (identifier "param_2") (+ "+") (identifier "sVar3"))) (; ";")) (} "}"))) (expression_statement "FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);" (call_expression "FUN_00056c80(puVar1 + 1,param_2,pcVar2,0)" (identifier "FUN_00056c80") (argument_list "(puVar1 + 1,param_2,pcVar2,0)" (( "(") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1")) (, ",") (identifier "param_2") (, ",") (identifier "pcVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" (identifier "puVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[10] = 0;" (assignment_expression "puVar1[10] = 0" (subscript_expression "puVar1[10]" (identifier "puVar1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[0xb] = 0;" (assignment_expression "puVar1[0xb] = 0" (subscript_expression "puVar1[0xb]" (identifier "puVar1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[0xc] = 0;" (assignment_expression "puVar1[0xc] = 0" (subscript_expression "puVar1[0xc]" (identifier "puVar1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[0xd] = 0;" (assignment_expression "puVar1[0xd] = 0" (subscript_expression "puVar1[0xd]" (identifier "puVar1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar1 + 0xe) = 0;" (assignment_expression "*(undefined1 *)(puVar1 + 0xe) = 0" (pointer_expression "*(undefined1 *)(puVar1 + 0xe)" (* "*") (cast_expression "(undefined1 *)(puVar1 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0xe)" (( "(") (binary_expression "puVar1 + 0xe" (identifier "puVar1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = FUN_001aa8c0(0xc);" (assignment_expression "iVar4 = FUN_001aa8c0(0xc)" (identifier "iVar4") (= "=") (call_expression "FUN_001aa8c0(0xc)" (identifier "FUN_001aa8c0") (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")")))) (; ";")) (expression_statement "*(undefined4 **)(iVar4 + 8) = puVar1;" (assignment_expression "*(undefined4 **)(iVar4 + 8) = puVar1" (pointer_expression "*(undefined4 **)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "puVar1")) (; ";")) (expression_statement "FUN_001af630(iVar4,iVar5);" (call_expression "FUN_001af630(iVar4,iVar5)" (identifier "FUN_001af630") (argument_list "(iVar4,iVar5)" (( "(") (identifier "iVar4") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "*(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;" (assignment_expression "*(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(int *)(iVar5 + 8) + 1" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void add_plugin(General_options * this, char * filename) */

void __thiscall var_3::type_1::function_1(type_1 *this,char *var_9)

{
  size_t *psVar1;
  type_2 *p_Var2;
  char *pcVar3;
  size_t var_11;
  type_2 *this_00;
  type_3 *var_1;
  type_4 var_8;
  
  var_1 = this->plugins_;
  if (var_1 == (type_3 *)0x0) {
    var_1 = (type_3 *)var_2(0xd8);
    (var_1->plugins_).super__List_base<var_3::Plugin*,var_4::var_14<var_3::Plugin*>var_5>._M_impl.
    _M_node.super__List_node_base._M_prev = (type_2 *)var_1;
    (var_1->plugins_).super__List_base<var_3::Plugin*,var_4::var_14<var_3::Plugin*>var_5>._M_impl.
    _M_node.super__List_node_base._M_next = (type_2 *)var_1;
    var_1->options_ = this;
    (var_1->plugins_).super__List_base<var_3::Plugin*,var_4::var_14<var_3::Plugin*>var_5>._M_impl.
    _M_node._M_size = 0;
    (var_1->current_)._M_node = (type_2 *)0x0;
    (var_1->objects_).super__Vector_base<var_3::Object*,var_4::var_14<var_3::Object*>var_5>._M_impl.
    _M_start = (type_5)0x0;
    (var_1->objects_).super__Vector_base<var_3::Object*,var_4::var_14<var_3::Object*>var_5>._M_impl.
    _M_finish = (type_5)0x0;
    (var_1->objects_).super__Vector_base<var_3::Object*,var_4::var_14<var_3::Object*>var_5>._M_impl.
    _M_end_of_storage = (type_5)0x0;
    (var_1->deferred_layout_objects_).
    super__Vector_base<var_3::Relobj*,var_4::var_14<var_3::Relobj*>var_5>._M_impl._M_start =
         (type_5)0x0;
    (var_1->deferred_layout_objects_).
    super__Vector_base<var_3::Relobj*,var_4::var_14<var_3::Relobj*>var_5>._M_impl._M_finish =
         (type_5)0x0;
    (var_1->deferred_layout_objects_).
    super__Vector_base<var_3::Relobj*,var_4::var_14<var_3::Relobj*>var_5>._M_impl._M_end_of_storage =
         (type_5)0x0;
    var_1->input_file_ = (type_6 *)0x0;
    (var_1->plugin_input_file_).name = (char *)0x0;
    (var_1->plugin_input_file_).fd = 0;
    *(type_7 *)&(var_1->plugin_input_file_).offset = 0;
    *(type_7 *)((int)&(var_1->plugin_input_file_).offset + 4) = 0;
    *(type_7 *)&(var_1->plugin_input_file_).filesize = 0;
    *(type_7 *)((int)&(var_1->plugin_input_file_).filesize + 4) = 0;
    (var_1->plugin_input_file_).handle = (void *)0x0;
    (var_1->rescannable_).
    super__Vector_base<var_3::Plugin_manager::var_6,var_4::var_14<var_3::Plugin_manager::var_6>var_5>
    ._M_impl._M_start = (type_5)0x0;
    (var_1->rescannable_).
    super__Vector_base<var_3::Plugin_manager::var_6,var_4::var_14<var_3::Plugin_manager::var_6>var_5>
    ._M_impl._M_finish = (type_5)0x0;
    (var_1->rescannable_).
    super__Vector_base<var_3::Plugin_manager::var_6,var_4::var_14<var_3::Plugin_manager::var_6>var_5>
    ._M_impl._M_end_of_storage = (type_5)0x0;
    (var_1->undefined_symbols_).super__Vector_base<var_3::Symbol*,var_4::var_14<var_3::Symbol*>var_5>.
    _M_impl._M_start = (type_5)0x0;
    (var_1->undefined_symbols_).super__Vector_base<var_3::Symbol*,var_4::var_14<var_3::Symbol*>var_5>.
    _M_impl._M_finish = (type_5)0x0;
    (var_1->undefined_symbols_).super__Vector_base<var_3::Symbol*,var_4::var_14<var_3::Symbol*>var_5>.
    _M_impl._M_end_of_storage = (type_5)0x0;
    var_1->any_claimed_ = false;
    var_1->in_replacement_phase_ = false;
    var_1->any_added_ = false;
    var_1->in_claim_file_handler_ = false;
    var_1->workqueue_ = (type_8 *)0x0;
    var_1->task_ = (type_9 *)0x0;
    var_1->input_objects_ = (type_10 *)0x0;
    var_1->symtab_ = (type_11 *)0x0;
    var_1->layout_ = (type_12 *)0x0;
    var_1->dirpath_ = (type_13 *)0x0;
    var_1->mapfile_ = (type_14 *)0x0;
    var_1->this_blocker_ = (type_15 *)0x0;
    (var_1->extra_search_path_)._M_dataplus._M_p = (type_5)&(var_1->extra_search_path_).field_2;
    (var_1->extra_search_path_)._M_string_length = 0;
    (var_1->extra_search_path_).field_2._M_local_buf[0] = '\0';
    var_1->lock_ = (type_16 *)0x0;
                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */
    Once::var_7(&(var_1->initialize_lock_).super_Once);
    (var_1->initialize_lock_).pplock_ = &var_1->lock_;
    (var_1->initialize_lock_).super_Once._vptr_Once =
         (type_17 **)&PTR__Initialize_lock_0033372c;
    var_8 = 0;
    do {
      *(type_7 *)((int)&(var_1->defsym_defines_set_)._M_h._M_buckets + var_8) = 0;
      var_8 = var_8 + 4;
    } while (var_8 < 0x1c);
    (var_1->current_)._M_node = (type_2 *)var_1;
    (var_1->defsym_defines_set_)._M_h._M_buckets =
         &(var_1->defsym_defines_set_)._M_h._M_single_bucket;
    (var_1->defsym_defines_set_)._M_h._M_bucket_count = 1;
    (var_1->defsym_defines_set_)._M_h._M_before_begin._M_nxt = (type_18 *)0x0;
    (var_1->defsym_defines_set_)._M_h._M_element_count = 0;
    (var_1->defsym_defines_set_)._M_h._M_rehash_policy._M_max_load_factor = 1.0;
    (var_1->defsym_defines_set_)._M_h._M_rehash_policy._M_next_resize = 0;
    (var_1->defsym_defines_set_)._M_h._M_single_bucket = (type_19)0x0;
    var_1->recorder_ = (type_20 *)0x0;
    this->plugins_ = var_1;
  }
  p_Var2 = (type_2 *)var_2(0x3c);
  p_Var2->_M_next = (type_2 *)0x0;
  p_Var2->_M_prev = (type_2 *)&p_Var2[1]._M_prev;
  pcVar3 = (char *)0xffffffff;
  if (var_9 != (char *)0x0) {
    var_11 = var_10(var_9);
    pcVar3 = var_9 + var_11;
  }
                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */
  std::__cxx11::basic_string<var_15,var_4::char_traits<var_15>,var_4::var_14<var_15>var_5>::
  var_12<var_13*>
            ((basic_string<var_15,var_4::char_traits<var_15>,var_4::var_14<var_15>var_5> *)&p_Var2->_M_prev,
             var_9,pcVar3,0);
  p_Var2[3]._M_prev = (type_2 *)0x0;
  p_Var2[4]._M_next = (type_2 *)0x0;
  p_Var2[4]._M_prev = (type_2 *)0x0;
  p_Var2[5]._M_next = (type_2 *)0x0;
  p_Var2[5]._M_prev = (type_2 *)0x0;
  p_Var2[6]._M_next = (type_2 *)0x0;
  p_Var2[6]._M_prev = (type_2 *)0x0;
  *(type_21 *)&p_Var2[7]._M_next = 0;
  this_00 = (type_2 *)var_2(0xc);
  this_00[1]._M_next = p_Var2;
  std::__detail::_List_node_base::var_16(this_00,(type_2 *)var_1);
  psVar1 = &(var_1->plugins_).super__List_base<var_3::Plugin*,var_4::var_14<var_3::Plugin*>var_5>.
            _M_impl._M_node._M_size;
  *psVar1 = *psVar1 + 1;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (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: (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: (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: (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: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (return_statement))))

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

void MASKED(int param_1,char *param_2)

{
  undefined4 *puVar1;
  char *pcVar2;
  size_t sVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  
  iVar5 = *(int *)(param_1 + 0x593c);
  if (iVar5 == 0) {
    iVar5 = FUN_001aa8c0(0xd8);
    *(int *)(iVar5 + 4) = iVar5;
    *(int *)iVar5 = iVar5;
    *(int *)(iVar5 + 100) = param_1;
    *(undefined4 *)(iVar5 + 8) = 0;
    *(undefined4 *)(iVar5 + 0xc) = 0;
    *(undefined4 *)(iVar5 + 0x10) = 0;
    *(undefined4 *)(iVar5 + 0x14) = 0;
    *(undefined4 *)(iVar5 + 0x18) = 0;
    *(undefined4 *)(iVar5 + 0x1c) = 0;
    *(undefined4 *)(iVar5 + 0x20) = 0;
    *(undefined4 *)(iVar5 + 0x24) = 0;
    *(undefined4 *)(iVar5 + 0x28) = 0;
    *(undefined4 *)(iVar5 + 0x2c) = 0;
    *(undefined4 *)(iVar5 + 0x30) = 0;
    *(undefined4 *)(iVar5 + 0x34) = 0;
    *(undefined4 *)(iVar5 + 0x38) = 0;
    *(undefined4 *)(iVar5 + 0x3c) = 0;
    *(undefined4 *)(iVar5 + 0x40) = 0;
    *(undefined4 *)(iVar5 + 0x44) = 0;
    *(undefined4 *)(iVar5 + 0x48) = 0;
    *(undefined4 *)(iVar5 + 0x4c) = 0;
    *(undefined4 *)(iVar5 + 0x50) = 0;
    *(undefined4 *)(iVar5 + 0x54) = 0;
    *(undefined4 *)(iVar5 + 0x58) = 0;
    *(undefined4 *)(iVar5 + 0x5c) = 0;
    *(undefined4 *)(iVar5 + 0x60) = 0;
    *(undefined4 *)(iVar5 + 0x68) = 0;
    *(undefined4 *)(iVar5 + 0x6c) = 0;
    *(undefined4 *)(iVar5 + 0x70) = 0;
    *(undefined4 *)(iVar5 + 0x74) = 0;
    *(undefined4 *)(iVar5 + 0x78) = 0;
    *(undefined4 *)(iVar5 + 0x7c) = 0;
    *(undefined4 *)(iVar5 + 0x80) = 0;
    *(undefined4 *)(iVar5 + 0x84) = 0;
    *(int *)(iVar5 + 0x88) = iVar5 + 0x90;
    *(undefined4 *)(iVar5 + 0x8c) = 0;
    *(undefined1 *)(iVar5 + 0x90) = 0;
    *(undefined4 *)(iVar5 + 0xa0) = 0;
                    /* try { // try from 000d8ccb to 000d8ccf has its CatchHandler @ 000d8d67 */
    FUN_0008e690(iVar5 + 0xa4);
    *(int *)(iVar5 + 0xb4) = iVar5 + 0xa0;
    *(undefined ***)(iVar5 + 0xa4) = &PTR_FUN_0033372c;
    uVar6 = 0;
    do {
      *(undefined4 *)(iVar5 + 0xb8 + uVar6) = 0;
      uVar6 = uVar6 + 4;
    } while (uVar6 < 0x1c);
    *(int *)(iVar5 + 0xc) = iVar5;
    *(int *)(iVar5 + 0xb8) = iVar5 + 0xd0;
    *(undefined4 *)(iVar5 + 0xbc) = 1;
    *(undefined4 *)(iVar5 + 0xc0) = 0;
    *(undefined4 *)(iVar5 + 0xc4) = 0;
    *(undefined4 *)(iVar5 + 200) = 0x3f800000;
    *(undefined4 *)(iVar5 + 0xcc) = 0;
    *(undefined4 *)(iVar5 + 0xd0) = 0;
    *(undefined4 *)(iVar5 + 0xd4) = 0;
    *(int *)(param_1 + 0x593c) = iVar5;
  }
  puVar1 = (undefined4 *)FUN_001aa8c0(0x3c);
  *puVar1 = 0;
  puVar1[1] = puVar1 + 3;
  pcVar2 = (char *)0xffffffff;
  if (param_2 != (char *)0x0) {
    sVar3 = strlen(param_2);
    pcVar2 = param_2 + sVar3;
  }
                    /* try { // try from 000d8b25 to 000d8b29 has its CatchHandler @ 000d8d6f */
  FUN_00056c80(puVar1 + 1,param_2,pcVar2,0);
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  puVar1[0xd] = 0;
  *(undefined1 *)(puVar1 + 0xe) = 0;
  iVar4 = FUN_001aa8c0(0xc);
  *(undefined4 **)(iVar4 + 8) = puVar1;
  FUN_001af630(iVar4,iVar5);
  *(int *)(iVar5 + 8) = *(int *)(iVar5 + 8) + 1;
  return;
}

