
string * gold::Dirsearch::find_file_in_dir_list
                   (string *__return_storage_ptr__,string *name,Dir_list *directories,
                   string *extra_search_dir)

{
  undefined *puVar1;
  pointer pcVar2;
  int *piVar3;
  int iVar4;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar5;
  pointer pSVar6;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar7;
  stat buf;
  undefined1 *local_78;
  undefined4 local_74;
  undefined1 auStack_70 [16];
  string full_name;
  string extra_name;
  
  puVar1 = PTR__M_construct<char*>_0043248c;
  pcVar2 = (extra_search_dir->_M_dataplus)._M_p;
  buf.st_dev = (ulong)(buf.st_pad1 + 1);
  (*(code *)PTR__M_construct<char*>_0043248c)
            (&buf,pcVar2,pcVar2 + extra_search_dir->_M_string_length,0);
                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */
  (*(code *)PTR__M_replace_aux_00433338)(&buf,buf.st_pad1[0],0,1,0x2f);
                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */
  piVar3 = (int *)(*(code *)PTR__M_append_00432c50)
                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length);
  paVar5 = &extra_name.field_2;
  if ((int *)*piVar3 == piVar3 + 2) {
    extra_name.field_2._M_allocated_capacity = piVar3[2];
    extra_name.field_2._4_4_ = piVar3[3];
    extra_name.field_2._8_4_ = piVar3[4];
    extra_name.field_2._12_4_ = piVar3[5];
    extra_name._M_dataplus._M_p = (pointer)paVar5;
  }
  else {
    extra_name.field_2._M_allocated_capacity = piVar3[2];
    extra_name._M_dataplus._M_p = (pointer)*piVar3;
  }
  extra_name._M_string_length = piVar3[1];
  *(undefined1 *)(piVar3 + 2) = 0;
  *piVar3 = (int)(piVar3 + 2);
  piVar3[1] = 0;
  if ((long *)buf.st_dev != buf.st_pad1 + 1) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  iVar4 = (*(code *)PTR___xstat64_004368b0)(3,extra_name._M_dataplus._M_p,&buf);
  if (iVar4 == 0) {
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)extra_name._M_dataplus._M_p == paVar5) {
      (__return_storage_ptr__->field_2)._M_allocated_capacity =
           extra_name.field_2._M_allocated_capacity;
      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;
      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;
      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;
      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;
    }
    else {
      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;
      (__return_storage_ptr__->field_2)._M_allocated_capacity =
           extra_name.field_2._M_allocated_capacity;
      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;
    }
    return __return_storage_ptr__;
  }
  pSVar6 = (directories->
           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).
           _M_impl._M_start;
  if (pSVar6 != (directories->
                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)
                ._M_impl._M_finish) {
    paVar7 = &full_name.field_2;
    do {
      pcVar2 = (pSVar6->name_)._M_dataplus._M_p;
                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */
      local_78 = auStack_70;
      (*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);
                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */
      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);
                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */
      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)
                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);
      full_name._M_dataplus._M_p = (pointer)*piVar3;
      if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {
        full_name.field_2._M_allocated_capacity = piVar3[2];
        full_name.field_2._4_4_ = piVar3[3];
        full_name.field_2._8_4_ = piVar3[4];
        full_name.field_2._12_4_ = piVar3[5];
        full_name._M_dataplus._M_p = (pointer)paVar7;
      }
      else {
        full_name.field_2._M_allocated_capacity = piVar3[2];
      }
      full_name._M_string_length = piVar3[1];
      *(undefined1 *)(piVar3 + 2) = 0;
      *piVar3 = (int)(piVar3 + 2);
      piVar3[1] = 0;
      if (local_78 != auStack_70) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);
      if (iVar4 == 0) {
        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)full_name._M_dataplus._M_p == paVar7) {
          (__return_storage_ptr__->field_2)._M_allocated_capacity =
               full_name.field_2._M_allocated_capacity;
          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;
          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;
          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;
          __return_storage_ptr__->_M_string_length = full_name._M_string_length;
        }
        else {
          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;
          (__return_storage_ptr__->field_2)._M_allocated_capacity =
               full_name.field_2._M_allocated_capacity;
          __return_storage_ptr__->_M_string_length = full_name._M_string_length;
        }
        goto LAB_0025f61c;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)full_name._M_dataplus._M_p != paVar7) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      pSVar6 = pSVar6 + 1;
    } while ((directories->
             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).
             _M_impl._M_finish != pSVar6);
  }
  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
  pcVar2 = (name->_M_dataplus)._M_p;
                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */
  (*(code *)puVar1)(__return_storage_ptr__,pcVar2,pcVar2 + name->_M_string_length,0);
LAB_0025f61c:
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)extra_name._M_dataplus._M_p != paVar5) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return __return_storage_ptr__;
}



/* gold::Dirsearch::find_file_in_dir_list(std::string const&, std::vector<gold::Search_directory,
   std::allocator<gold::Search_directory> > const&, std::string const&) */

Dirsearch * __thiscall
gold::Dirsearch::find_file_in_dir_list
          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)

{
  int *piVar1;
  int iVar2;
  int *piVar3;
  undefined1 *local_118;
  undefined4 local_114;
  undefined1 auStack_110 [152];
  undefined1 *local_78;
  undefined4 local_74;
  undefined1 auStack_70 [16];
  int *local_60;
  int local_5c;
  int local_58;
  int local_54;
  int local_50;
  int local_4c;
  int *local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int local_34;
  code *local_30;
  int *local_2c;
  
  local_30 = (code *)PTR__M_construct<char*>_0043248c;
  local_118 = auStack_110;
  (*(code *)PTR__M_construct<char*>_0043248c)
            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);
                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */
  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);
                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */
  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)
                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));
  local_2c = &local_40;
  if ((int *)*piVar1 == piVar1 + 2) {
    local_40 = piVar1[2];
    local_3c = piVar1[3];
    local_38 = piVar1[4];
    local_34 = piVar1[5];
    local_48 = local_2c;
  }
  else {
    local_40 = piVar1[2];
    local_48 = (int *)*piVar1;
  }
  local_44 = piVar1[1];
  *(undefined1 *)(piVar1 + 2) = 0;
  *piVar1 = (int)(piVar1 + 2);
  piVar1[1] = 0;
  if (local_118 != auStack_110) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);
  if (iVar2 == 0) {
    *(Dirsearch **)this = this + 8;
    if (local_48 == local_2c) {
      *(int *)(this + 8) = local_40;
      *(int *)(this + 0xc) = local_3c;
      *(int *)(this + 0x10) = local_38;
      *(int *)(this + 0x14) = local_34;
      *(int *)(this + 4) = local_44;
    }
    else {
      *(int **)this = local_48;
      *(int *)(this + 8) = local_40;
      *(int *)(this + 4) = local_44;
    }
    return this;
  }
  piVar1 = *(int **)param_2;
  if (piVar1 != *(int **)(param_2 + 4)) {
    do {
                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */
      local_78 = auStack_70;
      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);
                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */
      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);
                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */
      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)
                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));
      local_60 = (int *)*piVar3;
      if (local_60 == piVar3 + 2) {
        local_58 = piVar3[2];
        local_54 = piVar3[3];
        local_50 = piVar3[4];
        local_4c = piVar3[5];
        local_60 = &local_58;
      }
      else {
        local_58 = piVar3[2];
      }
      local_5c = piVar3[1];
      *(undefined1 *)(piVar3 + 2) = 0;
      *piVar3 = (int)(piVar3 + 2);
      piVar3[1] = 0;
      if (local_78 != auStack_70) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);
      if (iVar2 == 0) {
        *(Dirsearch **)this = this + 8;
        if (local_60 == &local_58) {
          *(int *)(this + 8) = local_58;
          *(int *)(this + 0xc) = local_54;
          *(int *)(this + 0x10) = local_50;
          *(int *)(this + 0x14) = local_4c;
          *(int *)(this + 4) = local_5c;
        }
        else {
          *(int **)this = local_60;
          *(int *)(this + 8) = local_58;
          *(int *)(this + 4) = local_5c;
        }
        goto LAB_0025f61c;
      }
      if (local_60 != &local_58) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      piVar1 = piVar1 + 7;
    } while (*(int **)(param_2 + 4) != piVar1);
  }
  *(Dirsearch **)this = this + 8;
                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */
  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);
LAB_0025f61c:
  if (local_48 != local_2c) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return this;
}


lui gp,0x1e
addiu gp,gp,-0x51a8
addu gp,gp,t9
addiu sp,sp,-0x138
lw t9,-0x7d44(gp)
or v1,a3,zero
or a3,zero,zero
sw gp,0x18(sp)
sw s7,0x12c(sp)
sll a3,a3,0x18
sw s6,0x128(sp)
or s7,a2,zero
sw s5,0x124(sp)
addiu s5,sp,0x20
sw s2,0x118(sp)
or s6,a0,zero
sw s0,0x110(sp)
addiu s0,sp,0x28
sw ra,0x134(sp)
or a0,s5,zero
sw s8,0x130(sp)
or s2,a1,zero
sw s4,0x120(sp)
sw s3,0x11c(sp)
sw s1,0x114(sp)
sw t9,0x108(sp)
sw s0,0x20(sp)
lw v0,0x0(v1)
lw v1,0x4(v1)
or a1,v0,zero
jalr t9
_addu a2,v0,v1
li v0,0x2f
lw gp,0x18(sp)
li a3,0x1
lw a1,0x24(sp)
or a2,zero,zero
sw v0,0x10(sp)
lw t9,-0x6e98(gp)
jalr t9
_or a0,s5,zero
lw gp,0x18(sp)
or a0,s5,zero
lw a2,0x4(s2)
lw t9,-0x7580(gp)
jalr t9
_lw a1,0x0(s2)
addiu v1,sp,0xf8
lw gp,0x18(sp)
sw v1,0xf0(sp)
sw v1,0x10c(sp)
addiu v1,v0,0x8
lw a0,0x0(v0)
beq a0,v1,0x0025f6ec
_nop
lw a1,0x8(v0)
sw a0,0xf0(sp)
sw a1,0xf8(sp)
lw a0,0x4(v0)
sb zero,0x8(v0)
sw a0,0xf4(sp)
sw v1,0x0(v0)
sw zero,0x4(v0)
lw a0,0x20(sp)
beq a0,s0,0x0025f48c
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x3920(gp)
li a0,0x3
lw a1,0xf0(sp)
jalr t9
_or a2,s5,zero
beq v0,zero,0x0025f668
_addiu v1,s6,0x8
lw s0,0x0(s7)
lw v0,0x4(s7)
beq s0,v0,0x0025f5ec
_addiu s1,sp,0xc0
addiu s3,sp,0xc8
li s8,0x2f
b 0x0025f540
_addiu s4,sp,0xe0
lw a1,0x8(v0)
sw a0,0xd8(sp)
sw a1,0xe0(sp)
lw a0,0x4(v0)
sb zero,0x8(v0)
sw a0,0xdc(sp)
sw v1,0x0(v0)
sw zero,0x4(v0)
lw a0,0xc0(sp)
beq a0,s3,0x0025f500
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x3920(gp)
li a0,0x3
lw a1,0xd8(sp)
jalr t9
_or a2,s5,zero
beq v0,zero,0x0025f6c4
_lw gp,0x18(sp)
lw a0,0xd8(sp)
beq a0,s4,0x0025f530
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw v0,0x4(s7)
addiu s0,s0,0x1c
beq v0,s0,0x0025f5f0
_addiu v0,s6,0x8
lw t9,0x108(sp)
or a3,zero,zero
sw s3,0xc0(sp)
or a0,s1,zero
lw v0,0x0(s0)
sll a3,a3,0x18
lw a2,0x4(s0)
or a1,v0,zero
jalr t9
_addu a2,v0,a2
lw gp,0x18(sp)
li a3,0x1
lw a1,0xc4(sp)
or a2,zero,zero
sw s8,0x10(sp)
lw t9,-0x6e98(gp)
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
or a0,s1,zero
lw a2,0x4(s2)
lw t9,-0x7580(gp)
jalr t9
_lw a1,0x0(s2)
lw gp,0x18(sp)
addiu v1,v0,0x8
sw s4,0xd8(sp)
lw a0,0x0(v0)
bne a0,v1,0x0025f4c8
_nop
lwl a3,0x8(v0)
lwl a2,0xc(v0)
lwl a1,0x10(v0)
lwl a0,0x14(v0)
lwr a3,0xb(v0)
lwr a2,0xf(v0)
lwr a1,0x13(v0)
lwr a0,0x17(v0)
sw a3,0xe0(sp)
sw a2,0xe4(sp)
sw a1,0xe8(sp)
b 0x0025f4d4
_sw a0,0xec(sp)
addiu v0,s6,0x8
lw t9,0x108(sp)
or a3,zero,zero
sw v0,0x0(s6)
or a0,s6,zero
lw v0,0x0(s2)
sll a3,a3,0x18
lw a2,0x4(s2)
or a1,v0,zero
jalr t9
_addu a2,v0,a2
lw gp,0x18(sp)
lw a0,0xf0(sp)
lw v0,0x10c(sp)
beq a0,v0,0x0025f634
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x134(sp)
or v0,s6,zero
lw s8,0x130(sp)
lw s7,0x12c(sp)
lw s6,0x128(sp)
lw s5,0x124(sp)
lw s4,0x120(sp)
lw s3,0x11c(sp)
lw s2,0x118(sp)
lw s1,0x114(sp)
lw s0,0x110(sp)
jr ra
_addiu sp,sp,0x138
lw v0,0xf0(sp)
sw v1,0x0(s6)
lw v1,0x10c(sp)
beq v0,v1,0x0025f720
_lw a1,0xf8(sp)
sw v0,0x0(s6)
lw v0,0xf8(sp)
sw v0,0x8(s6)
lw v0,0xf4(sp)
sw v0,0x4(s6)
lw ra,0x134(sp)
or v0,s6,zero
lw s8,0x130(sp)
lw s7,0x12c(sp)
lw s6,0x128(sp)
lw s5,0x124(sp)
lw s4,0x120(sp)
lw s3,0x11c(sp)
lw s2,0x118(sp)
lw s1,0x114(sp)
lw s0,0x110(sp)
jr ra
_addiu sp,sp,0x138
lw v0,0xd8(sp)
addiu v1,s6,0x8
beq v0,s4,0x0025f758
_sw v1,0x0(s6)
sw v0,0x0(s6)
lw v0,0xe0(sp)
sw v0,0x8(s6)
lw v0,0xdc(sp)
b 0x0025f61c
_sw v0,0x4(s6)
lwl a3,0x8(v0)
lwl a2,0xc(v0)
lwl a1,0x10(v0)
lwl a0,0x14(v0)
lwr a3,0xb(v0)
lwr a2,0xf(v0)
lwr a1,0x13(v0)
lwr a0,0x17(v0)
sw a3,0xf8(sp)
sw a2,0xfc(sp)
sw a1,0x100(sp)
b 0x0025f460
_sw a0,0x104(sp)
lw a0,0xfc(sp)
lw v1,0x100(sp)
lw v0,0x104(sp)
swl a1,0x8(s6)
swr a1,0xb(s6)
swl a0,0xc(s6)
swr a0,0xf(s6)
swl v1,0x10(s6)
swr v1,0x13(s6)
swl v0,0x14(s6)
swr v0,0x17(s6)
lw v0,0xf4(sp)
b 0x0025f690
_sw v0,0x4(s6)
lw a1,0xe0(sp)
lw a0,0xe4(sp)
lw v1,0xe8(sp)
lw v0,0xec(sp)
swl a1,0x8(s6)
swr a1,0xb(s6)
swl a0,0xc(s6)
swr a0,0xf(s6)
swl v1,0x10(s6)
swr v1,0x13(s6)
swl v0,0x14(s6)
swr v0,0x17(s6)
lw v0,0xdc(sp)
b 0x0025f61c
_sw v0,0x4(s6)
(translation_unit "/* gold::Dirsearch::find_file_in_dir_list(std::string const&, std::vector<gold::Search_directory,\n   std::allocator<gold::Search_directory> > const&, std::string const&) */\n\nDirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  undefined1 *local_118;\n  undefined4 local_114;\n  undefined1 auStack_110 [152];\n  undefined1 *local_78;\n  undefined4 local_74;\n  undefined1 auStack_70 [16];\n  int *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34;\n  code *local_30;\n  int *local_2c;\n  \n  local_30 = (code *)PTR__M_construct<char*>_0043248c;\n  local_118 = auStack_110;\n  (*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);\n                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */\n  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);\n                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */\n  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n  local_2c = &local_40;\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }\n  local_44 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);\n  if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }\n  piVar1 = *(int **)param_2;\n  if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }\n  *(Dirsearch **)this = this + 8;\n                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */\n  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\nLAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return this;\n}\n\n" comment (ERROR "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" (binary_expression "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" identifier * (call_expression "__thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" identifier (ERROR "gold::Dirsearch::find_file_in_dir_list" identifier : : identifier : : identifier) (argument_list "(Dirsearch *this,string *param_1,vector *param_2,string *param_3)" ( (binary_expression "Dirsearch *this" identifier * identifier) , (binary_expression "string *param_1" identifier * identifier) , (binary_expression "vector *param_2" identifier * identifier) , (binary_expression "string *param_3" identifier * identifier) ))))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  undefined1 *local_118;\n  undefined4 local_114;\n  undefined1 auStack_110 [152];\n  undefined1 *local_78;\n  undefined4 local_74;\n  undefined1 auStack_70 [16];\n  int *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34;\n  code *local_30;\n  int *local_2c;\n  \n  local_30 = (code *)PTR__M_construct<char*>_0043248c;\n  local_118 = auStack_110;\n  (*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);\n                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */\n  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);\n                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */\n  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n  local_2c = &local_40;\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }\n  local_44 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);\n  if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }\n  piVar1 = *(int **)param_2;\n  if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }\n  *(Dirsearch **)this = this + 8;\n                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */\n  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\nLAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return this;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined1 *local_118;" type_identifier (pointer_declarator "*local_118" * identifier) ;) (declaration "undefined4 local_114;" type_identifier identifier ;) (declaration "undefined1 auStack_110 [152];" type_identifier (array_declarator "auStack_110 [152]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "int *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_30 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "local_30 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "local_118 = auStack_110;" (assignment_expression "local_118 = auStack_110" identifier = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);" (call_expression "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_0043248c)" ( (binary_expression "*(code *)PTR__M_construct<char*>_0043248c" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0)" ( (pointer_expression "&local_118" & identifier) , (pointer_expression "*(int *)param_3" * (cast_expression "(int *)param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*(int *)param_3 + *(int *)(param_3 + 4)" (pointer_expression "*(int *)param_3" * (cast_expression "(int *)param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) , number_literal ))) ;) comment (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" ( (pointer_expression "*(code *)PTR__M_replace_aux_00433338" * (cast_expression "(code *)PTR__M_replace_aux_00433338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_118,local_114,0,1,0x2f)" ( (pointer_expression "&local_118" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));" (assignment_expression "piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" ( (pointer_expression "*(code *)PTR__M_append_00432c50" * (cast_expression "(code *)PTR__M_append_00432c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (pointer_expression "&local_118" & identifier) , (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ))))) ;) (expression_statement "local_2c = &local_40;" (assignment_expression "local_2c = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (if_statement "if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" if (parenthesized_expression "((int *)*piVar1 == piVar1 + 2)" ( (binary_expression "(int *)*piVar1 == piVar1 + 2" (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) == (binary_expression "piVar1 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }" { (expression_statement "local_40 = piVar1[2];" (assignment_expression "local_40 = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_3c = piVar1[3];" (assignment_expression "local_3c = piVar1[3]" identifier = (subscript_expression "piVar1[3]" identifier [ number_literal ])) ;) (expression_statement "local_38 = piVar1[4];" (assignment_expression "local_38 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (expression_statement "local_34 = piVar1[5];" (assignment_expression "local_34 = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = local_2c;" (assignment_expression "local_48 = local_2c" identifier = identifier) ;) }) (else_clause "else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" else (compound_statement "{\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" { (expression_statement "local_40 = piVar1[2];" (assignment_expression "local_40 = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_48 = (int *)*piVar1;" (assignment_expression "local_48 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }))) (expression_statement "local_44 = piVar1[1];" (assignment_expression "local_44 = piVar1[1]" identifier = (subscript_expression "piVar1[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar1 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar1 + 2)" * (cast_expression "(undefined1 *)(piVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1 + 2)" ( (binary_expression "piVar1 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar1 = (int)(piVar1 + 2);" (assignment_expression "*piVar1 = (int)(piVar1 + 2)" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)(piVar1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar1 + 2)" ( (binary_expression "piVar1 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_118 != auStack_110)" ( (binary_expression "local_118 != auStack_110" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118)" identifier = (call_expression "(*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" ( (pointer_expression "*(code *)PTR___xstat64_004368b0" * (cast_expression "(code *)PTR___xstat64_004368b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,local_48,&local_118)" ( number_literal , identifier , (pointer_expression "&local_118" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }" { (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" * (cast_expression "(Dirsearch **)this" ( (type_descriptor "Dirsearch **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (if_statement "if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" if (parenthesized_expression "(local_48 == local_2c)" ( (binary_expression "local_48 == local_2c" identifier == identifier) )) (compound_statement "{\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }" { (expression_statement "*(int *)(this + 8) = local_40;" (assignment_expression "*(int *)(this + 8) = local_40" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0xc) = local_3c;" (assignment_expression "*(int *)(this + 0xc) = local_3c" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x10) = local_38;" (assignment_expression "*(int *)(this + 0x10) = local_38" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x14) = local_34;" (assignment_expression "*(int *)(this + 0x14) = local_34" (pointer_expression "*(int *)(this + 0x14)" * (cast_expression "(int *)(this + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_44;" (assignment_expression "*(int *)(this + 4) = local_44" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" else (compound_statement "{\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" { (expression_statement "*(int **)this = local_48;" (assignment_expression "*(int **)this = local_48" (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 8) = local_40;" (assignment_expression "*(int *)(this + 8) = local_40" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_44;" (assignment_expression "*(int *)(this + 4) = local_44" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }))) (return_statement "return this;" return identifier ;) })) (expression_statement "piVar1 = *(int **)param_2;" (assignment_expression "piVar1 = *(int **)param_2" identifier = (pointer_expression "*(int **)param_2" * (cast_expression "(int **)param_2" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }" if (parenthesized_expression "(piVar1 != *(int **)(param_2 + 4))" ( (binary_expression "piVar1 != *(int **)(param_2 + 4)" identifier != (pointer_expression "*(int **)(param_2 + 4)" * (cast_expression "(int **)(param_2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }" { (do_statement "do {\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);" do (compound_statement "{\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    }" { comment (expression_statement "local_78 = auStack_70;" (assignment_expression "local_78 = auStack_70" identifier = identifier) ;) (expression_statement "(*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);" (call_expression "(*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0)" (parenthesized_expression "(*local_30)" ( (pointer_expression "*local_30" * identifier) )) (argument_list "(&local_78,*piVar1,*piVar1 + piVar1[1],0)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*piVar1" * identifier) , (binary_expression "*piVar1 + piVar1[1]" (pointer_expression "*piVar1" * identifier) + (subscript_expression "piVar1[1]" identifier [ number_literal ])) , number_literal ))) ;) comment (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" ( (pointer_expression "*(code *)PTR__M_replace_aux_00433338" * (cast_expression "(code *)PTR__M_replace_aux_00433338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_74,0,1,0x2f)" ( (pointer_expression "&local_78" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));" (assignment_expression "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" ( (pointer_expression "*(code *)PTR__M_append_00432c50" * (cast_expression "(code *)PTR__M_append_00432c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ))))) ;) (expression_statement "local_60 = (int *)*piVar3;" (assignment_expression "local_60 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }" if (parenthesized_expression "(local_60 == piVar3 + 2)" ( (binary_expression "local_60 == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }" { (expression_statement "local_58 = piVar3[2];" (assignment_expression "local_58 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_54 = piVar3[3];" (assignment_expression "local_54 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_50 = piVar3[4];" (assignment_expression "local_50 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_4c = piVar3[5];" (assignment_expression "local_4c = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_60 = &local_58;" (assignment_expression "local_60 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n        local_58 = piVar3[2];\n      }" else (compound_statement "{\n        local_58 = piVar3[2];\n      }" { (expression_statement "local_58 = piVar3[2];" (assignment_expression "local_58 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_5c = piVar3[1];" (assignment_expression "local_5c = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_78 != auStack_70)" ( (binary_expression "local_78 != auStack_70" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118)" identifier = (call_expression "(*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" ( (pointer_expression "*(code *)PTR___xstat64_004368b0" * (cast_expression "(code *)PTR___xstat64_004368b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,local_60,&local_118)" ( number_literal , identifier , (pointer_expression "&local_118" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }" { (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" * (cast_expression "(Dirsearch **)this" ( (type_descriptor "Dirsearch **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (if_statement "if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" if (parenthesized_expression "(local_60 == &local_58)" ( (binary_expression "local_60 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }" { (expression_statement "*(int *)(this + 8) = local_58;" (assignment_expression "*(int *)(this + 8) = local_58" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0xc) = local_54;" (assignment_expression "*(int *)(this + 0xc) = local_54" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x10) = local_50;" (assignment_expression "*(int *)(this + 0x10) = local_50" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x14) = local_4c;" (assignment_expression "*(int *)(this + 0x14) = local_4c" (pointer_expression "*(int *)(this + 0x14)" * (cast_expression "(int *)(this + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_5c;" (assignment_expression "*(int *)(this + 4) = local_5c" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" else (compound_statement "{\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" { (expression_statement "*(int **)this = local_60;" (assignment_expression "*(int **)this = local_60" (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 8) = local_58;" (assignment_expression "*(int *)(this + 8) = local_58" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_5c;" (assignment_expression "*(int *)(this + 4) = local_5c" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_0025f61c;" goto statement_identifier ;) })) (if_statement "if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_60 != &local_58)" ( (binary_expression "local_60 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "piVar1 = piVar1 + 7;" (assignment_expression "piVar1 = piVar1 + 7" identifier = (binary_expression "piVar1 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_2 + 4) != piVar1)" ( (binary_expression "*(int **)(param_2 + 4) != piVar1" (pointer_expression "*(int **)(param_2 + 4)" * (cast_expression "(int **)(param_2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" * (cast_expression "(Dirsearch **)this" ( (type_descriptor "Dirsearch **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) comment (expression_statement "(*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);" (call_expression "(*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" (parenthesized_expression "(*local_30)" ( (pointer_expression "*local_30" * identifier) )) (argument_list "(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" ( identifier , (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*(int *)param_1 + *(int *)(param_1 + 4)" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (labeled_statement "LAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" statement_identifier : (if_statement "if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_48 != local_2c)" ( (binary_expression "local_48 != local_2c" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (return_statement "return this;" return identifier ;) }))
(translation_unit "string * gold::Dirsearch::find_file_in_dir_list\n                   (string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)\n\n{\n  undefined *puVar1;\n  pointer pcVar2;\n  int *piVar3;\n  int iVar4;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;\n  pointer pSVar6;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar7;\n  stat buf;\n  undefined1 *local_78;\n  undefined4 local_74;\n  undefined1 auStack_70 [16];\n  string full_name;\n  string extra_name;\n  \n  puVar1 = PTR__M_construct<char*>_0043248c;\n  pcVar2 = (extra_search_dir->_M_dataplus)._M_p;\n  buf.st_dev = (ulong)(buf.st_pad1 + 1);\n  (*(code *)PTR__M_construct<char*>_0043248c)\n            (&buf,pcVar2,pcVar2 + extra_search_dir->_M_string_length,0);\n                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */\n  (*(code *)PTR__M_replace_aux_00433338)(&buf,buf.st_pad1[0],0,1,0x2f);\n                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */\n  piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length);\n  paVar5 = &extra_name.field_2;\n  if ((int *)*piVar3 == piVar3 + 2) {\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name.field_2._4_4_ = piVar3[3];\n    extra_name.field_2._8_4_ = piVar3[4];\n    extra_name.field_2._12_4_ = piVar3[5];\n    extra_name._M_dataplus._M_p = (pointer)paVar5;\n  }\n  else {\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar3;\n  }\n  extra_name._M_string_length = piVar3[1];\n  *(undefined1 *)(piVar3 + 2) = 0;\n  *piVar3 = (int)(piVar3 + 2);\n  piVar3[1] = 0;\n  if ((long *)buf.st_dev != buf.st_pad1 + 1) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  iVar4 = (*(code *)PTR___xstat64_004368b0)(3,extra_name._M_dataplus._M_p,&buf);\n  if (iVar4 == 0) {\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    else {\n      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    return __return_storage_ptr__;\n  }\n  pSVar6 = (directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n           _M_impl._M_start;\n  if (pSVar6 != (directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)\n                ._M_impl._M_finish) {\n    paVar7 = &full_name.field_2;\n    do {\n      pcVar2 = (pSVar6->name_)._M_dataplus._M_p;\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);\n      full_name._M_dataplus._M_p = (pointer)*piVar3;\n      if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }\n      full_name._M_string_length = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);\n      if (iVar4 == 0) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pSVar6 = pSVar6 + 1;\n    } while ((directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish != pSVar6);\n  }\n  (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n  pcVar2 = (name->_M_dataplus)._M_p;\n                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */\n  (*(code *)puVar1)(__return_storage_ptr__,pcVar2,pcVar2 + name->_M_string_length,0);\nLAB_0025f61c:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar5) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return __return_storage_ptr__;\n}\n\n" (ERROR "string * gold::" (binary_expression "string * gold" identifier * identifier) : :) (labeled_statement "Dirsearch::find_file_in_dir_list\n                   (string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)\n\n{\n  undefined *puVar1;" statement_identifier : (ERROR ":find_file_in_dir_list\n                   (string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)\n\n{" : (call_expression "find_file_in_dir_list\n                   (string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)" identifier (argument_list "(string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)" ( (binary_expression "string *__return_storage_ptr__" identifier * identifier) , (binary_expression "string *name" identifier * identifier) , (binary_expression "Dir_list *directories" identifier * identifier) , (binary_expression "string *extra_search_dir" identifier * identifier) ))) {) (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;)) (declaration "pointer pcVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar5;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar5;" (binary_expression "allocator<char>_>_9\n  *paVar5" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar5" identifier * identifier)) ;)) (declaration "pointer pSVar6;" type_identifier identifier ;) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar7;" statement_identifier (ERROR "::char_traits<char>,_std:" : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_>_9\n  *paVar7;" (binary_expression "allocator<char>_>_9\n  *paVar7" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar7" identifier * identifier)) ;)) (declaration "stat buf;" type_identifier identifier ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "string full_name;" type_identifier identifier ;) (declaration "string extra_name;" type_identifier identifier ;) (expression_statement "puVar1 = PTR__M_construct<char*>_0043248c;" (assignment_expression "puVar1 = PTR__M_construct<char*>_0043248c" identifier = (binary_expression "PTR__M_construct<char*>_0043248c" (binary_expression "PTR__M_construct<char" identifier < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "pcVar2 = (extra_search_dir->_M_dataplus)._M_p;" (assignment_expression "pcVar2 = (extra_search_dir->_M_dataplus)._M_p" identifier = (field_expression "(extra_search_dir->_M_dataplus)._M_p" (parenthesized_expression "(extra_search_dir->_M_dataplus)" ( (field_expression "extra_search_dir->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "buf.st_dev = (ulong)(buf.st_pad1 + 1);" (assignment_expression "buf.st_dev = (ulong)(buf.st_pad1 + 1)" (field_expression "buf.st_dev" identifier . field_identifier) = (call_expression "(ulong)(buf.st_pad1 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(buf.st_pad1 + 1)" ( (binary_expression "buf.st_pad1 + 1" (field_expression "buf.st_pad1" identifier . field_identifier) + number_literal) )))) ;) (expression_statement "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&buf,pcVar2,pcVar2 + extra_search_dir->_M_string_length,0);" (call_expression "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&buf,pcVar2,pcVar2 + extra_search_dir->_M_string_length,0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_0043248c)" ( (binary_expression "*(code *)PTR__M_construct<char*>_0043248c" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&buf,pcVar2,pcVar2 + extra_search_dir->_M_string_length,0)" ( (pointer_expression "&buf" & identifier) , identifier , (binary_expression "pcVar2 + extra_search_dir->_M_string_length" identifier + (field_expression "extra_search_dir->_M_string_length" identifier -> field_identifier)) , number_literal ))) ;) comment (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&buf,buf.st_pad1[0],0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&buf,buf.st_pad1[0],0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" ( (pointer_expression "*(code *)PTR__M_replace_aux_00433338" * (cast_expression "(code *)PTR__M_replace_aux_00433338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&buf,buf.st_pad1[0],0,1,0x2f)" ( (pointer_expression "&buf" & identifier) , (subscript_expression "buf.st_pad1[0]" (field_expression "buf.st_pad1" identifier . field_identifier) [ number_literal ]) , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length);" (assignment_expression "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length)" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_00432c50)\n                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length)" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" ( (pointer_expression "*(code *)PTR__M_append_00432c50" * (cast_expression "(code *)PTR__M_append_00432c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&buf,(name->_M_dataplus)._M_p,name->_M_string_length)" ( (pointer_expression "&buf" & identifier) , (field_expression "(name->_M_dataplus)._M_p" (parenthesized_expression "(name->_M_dataplus)" ( (field_expression "name->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , (field_expression "name->_M_string_length" identifier -> field_identifier) ))))) ;) (expression_statement "paVar5 = &extra_name.field_2;" (assignment_expression "paVar5 = &extra_name.field_2" identifier = (pointer_expression "&extra_name.field_2" & (field_expression "extra_name.field_2" identifier . field_identifier))) ;) (if_statement "if ((int *)*piVar3 == piVar3 + 2) {\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name.field_2._4_4_ = piVar3[3];\n    extra_name.field_2._8_4_ = piVar3[4];\n    extra_name.field_2._12_4_ = piVar3[5];\n    extra_name._M_dataplus._M_p = (pointer)paVar5;\n  }\n  else {\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar3;\n  }" if (parenthesized_expression "((int *)*piVar3 == piVar3 + 2)" ( (binary_expression "(int *)*piVar3 == piVar3 + 2" (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier)) == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name.field_2._4_4_ = piVar3[3];\n    extra_name.field_2._8_4_ = piVar3[4];\n    extra_name.field_2._12_4_ = piVar3[5];\n    extra_name._M_dataplus._M_p = (pointer)paVar5;\n  }" { (expression_statement "extra_name.field_2._M_allocated_capacity = piVar3[2];" (assignment_expression "extra_name.field_2._M_allocated_capacity = piVar3[2]" (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._4_4_ = piVar3[3];" (assignment_expression "extra_name.field_2._4_4_ = piVar3[3]" (field_expression "extra_name.field_2._4_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._8_4_ = piVar3[4];" (assignment_expression "extra_name.field_2._8_4_ = piVar3[4]" (field_expression "extra_name.field_2._8_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._12_4_ = piVar3[5];" (assignment_expression "extra_name.field_2._12_4_ = piVar3[5]" (field_expression "extra_name.field_2._12_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "extra_name._M_dataplus._M_p = (pointer)paVar5;" (assignment_expression "extra_name._M_dataplus._M_p = (pointer)paVar5" (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar5" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar3;\n  }" else (compound_statement "{\n    extra_name.field_2._M_allocated_capacity = piVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar3;\n  }" { (expression_statement "extra_name.field_2._M_allocated_capacity = piVar3[2];" (assignment_expression "extra_name.field_2._M_allocated_capacity = piVar3[2]" (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "extra_name._M_dataplus._M_p = (pointer)*piVar3;" (assignment_expression "extra_name._M_dataplus._M_p = (pointer)*piVar3" (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)*piVar3" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) }))) (expression_statement "extra_name._M_string_length = piVar3[1];" (assignment_expression "extra_name._M_string_length = piVar3[1]" (field_expression "extra_name._M_string_length" identifier . field_identifier) = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((long *)buf.st_dev != buf.st_pad1 + 1) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "((long *)buf.st_dev != buf.st_pad1 + 1)" ( (binary_expression "(long *)buf.st_dev != buf.st_pad1 + 1" (cast_expression "(long *)buf.st_dev" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "buf.st_dev" identifier . field_identifier)) != (binary_expression "buf.st_pad1 + 1" (field_expression "buf.st_pad1" identifier . field_identifier) + number_literal)) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar4 = (*(code *)PTR___xstat64_004368b0)(3,extra_name._M_dataplus._M_p,&buf);" (assignment_expression "iVar4 = (*(code *)PTR___xstat64_004368b0)(3,extra_name._M_dataplus._M_p,&buf)" identifier = (call_expression "(*(code *)PTR___xstat64_004368b0)(3,extra_name._M_dataplus._M_p,&buf)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" ( (pointer_expression "*(code *)PTR___xstat64_004368b0" * (cast_expression "(code *)PTR___xstat64_004368b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,extra_name._M_dataplus._M_p,&buf)" ( number_literal , (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) , (pointer_expression "&buf" & identifier) )))) ;) (if_statement "if (iVar4 == 0) {\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    else {\n      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    return __return_storage_ptr__;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    else {\n      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    return __return_storage_ptr__;\n  }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }\n    else {\n      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar5" (binary_expression "allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)extra_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;\n      *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }" { (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;" (assignment_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_" (pointer_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4)" * (cast_expression "(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__return_storage_ptr__->field_2 + 4)" ( (binary_expression "(int)&__return_storage_ptr__->field_2 + 4" (cast_expression "(int)&__return_storage_ptr__->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "extra_name.field_2._4_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;" (assignment_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_" (pointer_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8)" * (cast_expression "(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__return_storage_ptr__->field_2 + 8)" ( (binary_expression "(int)&__return_storage_ptr__->field_2 + 8" (cast_expression "(int)&__return_storage_ptr__->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "extra_name.field_2._8_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;" (assignment_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_" (pointer_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__return_storage_ptr__->field_2 + 0xc)" ( (binary_expression "(int)&__return_storage_ptr__->field_2 + 0xc" (cast_expression "(int)&__return_storage_ptr__->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "extra_name.field_2._12_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__return_storage_ptr__->_M_string_length = extra_name._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = extra_name._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "extra_name._M_string_length" identifier . field_identifier)) ;) }) (else_clause "else {\n      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }" else (compound_statement "{\n      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__return_storage_ptr__->_M_string_length = extra_name._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = extra_name._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "extra_name._M_string_length" identifier . field_identifier)) ;) }))) (return_statement "return __return_storage_ptr__;" return identifier ;) })) (expression_statement "pSVar6 = (directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n           _M_impl._M_start;" (assignment_expression "pSVar6 = (directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n           _M_impl._M_start" identifier = (field_expression "(directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n           _M_impl._M_start" (field_expression "(directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n           _M_impl" (parenthesized_expression "(directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)" ( (ERROR "directories->\n           super__Vector_base<gold::Search_directory,_std::allocator<gold::" (comma_expression "directories->\n           super__Vector_base<gold::Search_directory,_std" (binary_expression "directories->\n           super__Vector_base<gold" (field_expression "directories->\n           super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Search_directory" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Search_directory>_>" (binary_expression "Search_directory>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pSVar6 != (directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)\n                ._M_impl._M_finish) {\n    paVar7 = &full_name.field_2;\n    do {\n      pcVar2 = (pSVar6->name_)._M_dataplus._M_p;\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);\n      full_name._M_dataplus._M_p = (pointer)*piVar3;\n      if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }\n      full_name._M_string_length = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);\n      if (iVar4 == 0) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pSVar6 = pSVar6 + 1;\n    } while ((directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish != pSVar6);\n  }" if (parenthesized_expression "(pSVar6 != (directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)\n                ._M_impl._M_finish)" ( (binary_expression "pSVar6 != (directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)\n                ._M_impl._M_finish" identifier != (field_expression "(directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)\n                ._M_impl._M_finish" (field_expression "(directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)\n                ._M_impl" (parenthesized_expression "(directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)" ( (ERROR "directories->\n                super__Vector_base<gold::Search_directory,_std::allocator<gold::" (comma_expression "directories->\n                super__Vector_base<gold::Search_directory,_std" (binary_expression "directories->\n                super__Vector_base<gold" (field_expression "directories->\n                super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Search_directory" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Search_directory>_>" (binary_expression "Search_directory>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) )) (compound_statement "{\n    paVar7 = &full_name.field_2;\n    do {\n      pcVar2 = (pSVar6->name_)._M_dataplus._M_p;\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);\n      full_name._M_dataplus._M_p = (pointer)*piVar3;\n      if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }\n      full_name._M_string_length = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);\n      if (iVar4 == 0) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pSVar6 = pSVar6 + 1;\n    } while ((directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish != pSVar6);\n  }" { (expression_statement "paVar7 = &full_name.field_2;" (assignment_expression "paVar7 = &full_name.field_2" identifier = (pointer_expression "&full_name.field_2" & (field_expression "full_name.field_2" identifier . field_identifier))) ;) (do_statement "do {\n      pcVar2 = (pSVar6->name_)._M_dataplus._M_p;\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);\n      full_name._M_dataplus._M_p = (pointer)*piVar3;\n      if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }\n      full_name._M_string_length = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);\n      if (iVar4 == 0) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pSVar6 = pSVar6 + 1;\n    } while ((directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish != pSVar6);" do (compound_statement "{\n      pcVar2 = (pSVar6->name_)._M_dataplus._M_p;\n                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */\n      local_78 = auStack_70;\n      (*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */\n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */\n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);\n      full_name._M_dataplus._M_p = (pointer)*piVar3;\n      if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }\n      full_name._M_string_length = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);\n      if (iVar4 == 0) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      pSVar6 = pSVar6 + 1;\n    }" { (expression_statement "pcVar2 = (pSVar6->name_)._M_dataplus._M_p;" (assignment_expression "pcVar2 = (pSVar6->name_)._M_dataplus._M_p" identifier = (field_expression "(pSVar6->name_)._M_dataplus._M_p" (field_expression "(pSVar6->name_)._M_dataplus" (parenthesized_expression "(pSVar6->name_)" ( (field_expression "pSVar6->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) comment (expression_statement "local_78 = auStack_70;" (assignment_expression "local_78 = auStack_70" identifier = identifier) ;) (expression_statement "(*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0);" (call_expression "(*(code *)puVar1)(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,pcVar2,pcVar2 + (pSVar6->name_)._M_string_length,0)" ( (pointer_expression "&local_78" & identifier) , identifier , (binary_expression "pcVar2 + (pSVar6->name_)._M_string_length" identifier + (field_expression "(pSVar6->name_)._M_string_length" (parenthesized_expression "(pSVar6->name_)" ( (field_expression "pSVar6->name_" identifier -> field_identifier) )) . field_identifier)) , number_literal ))) ;) comment (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" ( (pointer_expression "*(code *)PTR__M_replace_aux_00433338" * (cast_expression "(code *)PTR__M_replace_aux_00433338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_74,0,1,0x2f)" ( (pointer_expression "&local_78" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length);" (assignment_expression "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length)" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_00432c50)\n                                (&local_78,(name->_M_dataplus)._M_p,name->_M_string_length)" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" ( (pointer_expression "*(code *)PTR__M_append_00432c50" * (cast_expression "(code *)PTR__M_append_00432c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,(name->_M_dataplus)._M_p,name->_M_string_length)" ( (pointer_expression "&local_78" & identifier) , (field_expression "(name->_M_dataplus)._M_p" (parenthesized_expression "(name->_M_dataplus)" ( (field_expression "name->_M_dataplus" identifier -> field_identifier) )) . field_identifier) , (field_expression "name->_M_string_length" identifier -> field_identifier) ))))) ;) (expression_statement "full_name._M_dataplus._M_p = (pointer)*piVar3;" (assignment_expression "full_name._M_dataplus._M_p = (pointer)*piVar3" (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)*piVar3" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) (if_statement "if ((int *)full_name._M_dataplus._M_p == piVar3 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }" if (parenthesized_expression "((int *)full_name._M_dataplus._M_p == piVar3 + 2)" ( (binary_expression "(int *)full_name._M_dataplus._M_p == piVar3 + 2" (cast_expression "(int *)full_name._M_dataplus._M_p" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier)) == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n        full_name.field_2._4_4_ = piVar3[3];\n        full_name.field_2._8_4_ = piVar3[4];\n        full_name.field_2._12_4_ = piVar3[5];\n        full_name._M_dataplus._M_p = (pointer)paVar7;\n      }" { (expression_statement "full_name.field_2._M_allocated_capacity = piVar3[2];" (assignment_expression "full_name.field_2._M_allocated_capacity = piVar3[2]" (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._4_4_ = piVar3[3];" (assignment_expression "full_name.field_2._4_4_ = piVar3[3]" (field_expression "full_name.field_2._4_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._8_4_ = piVar3[4];" (assignment_expression "full_name.field_2._8_4_ = piVar3[4]" (field_expression "full_name.field_2._8_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._12_4_ = piVar3[5];" (assignment_expression "full_name.field_2._12_4_ = piVar3[5]" (field_expression "full_name.field_2._12_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "full_name._M_dataplus._M_p = (pointer)paVar7;" (assignment_expression "full_name._M_dataplus._M_p = (pointer)paVar7" (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar7" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }" else (compound_statement "{\n        full_name.field_2._M_allocated_capacity = piVar3[2];\n      }" { (expression_statement "full_name.field_2._M_allocated_capacity = piVar3[2];" (assignment_expression "full_name.field_2._M_allocated_capacity = piVar3[2]" (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "full_name._M_string_length = piVar3[1];" (assignment_expression "full_name._M_string_length = piVar3[1]" (field_expression "full_name._M_string_length" identifier . field_identifier) = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_78 != auStack_70)" ( (binary_expression "local_78 != auStack_70" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);" (assignment_expression "iVar4 = (*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf)" identifier = (call_expression "(*(code *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" ( (pointer_expression "*(code *)PTR___xstat64_004368b0" * (cast_expression "(code *)PTR___xstat64_004368b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,full_name._M_dataplus._M_p,&buf)" ( number_literal , (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) , (pointer_expression "&buf" & identifier) )))) ;) (if_statement "if (iVar4 == 0) {\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        goto LAB_0025f61c;\n      }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7) {\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }\n        else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)full_name._M_dataplus._M_p == paVar7" (binary_expression "allocator<char>_>_9\n             *)full_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)full_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;\n          *(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }" { (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;" (assignment_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_" (pointer_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4)" * (cast_expression "(undefined4 *)((int)&__return_storage_ptr__->field_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__return_storage_ptr__->field_2 + 4)" ( (binary_expression "(int)&__return_storage_ptr__->field_2 + 4" (cast_expression "(int)&__return_storage_ptr__->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "full_name.field_2._4_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;" (assignment_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_" (pointer_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8)" * (cast_expression "(undefined4 *)((int)&__return_storage_ptr__->field_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__return_storage_ptr__->field_2 + 8)" ( (binary_expression "(int)&__return_storage_ptr__->field_2 + 8" (cast_expression "(int)&__return_storage_ptr__->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "full_name.field_2._8_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;" (assignment_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_" (pointer_expression "*(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc)" * (cast_expression "(undefined4 *)((int)&__return_storage_ptr__->field_2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__return_storage_ptr__->field_2 + 0xc)" ( (binary_expression "(int)&__return_storage_ptr__->field_2 + 0xc" (cast_expression "(int)&__return_storage_ptr__->field_2" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__return_storage_ptr__->field_2" & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) + number_literal) )))) = (field_expression "full_name.field_2._12_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__return_storage_ptr__->_M_string_length = full_name._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = full_name._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "full_name._M_string_length" identifier . field_identifier)) ;) }) (else_clause "else {\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }" else (compound_statement "{\n          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;\n          (__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;\n          __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        }" { (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity;" (assignment_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity =\n               full_name.field_2._M_allocated_capacity" (field_expression "(__return_storage_ptr__->field_2)._M_allocated_capacity" (parenthesized_expression "(__return_storage_ptr__->field_2)" ( (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier) )) . field_identifier) = (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier)) ;) (expression_statement "__return_storage_ptr__->_M_string_length = full_name._M_string_length;" (assignment_expression "__return_storage_ptr__->_M_string_length = full_name._M_string_length" (field_expression "__return_storage_ptr__->_M_string_length" identifier -> field_identifier) = (field_expression "full_name._M_string_length" identifier . field_identifier)) ;) }))) (goto_statement "goto LAB_0025f61c;" goto statement_identifier ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar7" (binary_expression "allocator<char>_>_9\n           *)full_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)full_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "pSVar6 = pSVar6 + 1;" (assignment_expression "pSVar6 = pSVar6 + 1" identifier = (binary_expression "pSVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish != pSVar6)" ( (binary_expression "(directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish != pSVar6" (field_expression "(directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_finish" (field_expression "(directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl" (parenthesized_expression "(directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)" ( (ERROR "directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::" (comma_expression "directories->\n             super__Vector_base<gold::Search_directory,_std" (binary_expression "directories->\n             super__Vector_base<gold" (field_expression "directories->\n             super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Search_directory" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Search_directory>_>" (binary_expression "Search_directory>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;" (assignment_expression "(__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2" (field_expression "(__return_storage_ptr__->_M_dataplus)._M_p" (parenthesized_expression "(__return_storage_ptr__->_M_dataplus)" ( (field_expression "__return_storage_ptr__->_M_dataplus" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(pointer)&__return_storage_ptr__->field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "__return_storage_ptr__->field_2" identifier -> field_identifier))) ;) (expression_statement "pcVar2 = (name->_M_dataplus)._M_p;" (assignment_expression "pcVar2 = (name->_M_dataplus)._M_p" identifier = (field_expression "(name->_M_dataplus)._M_p" (parenthesized_expression "(name->_M_dataplus)" ( (field_expression "name->_M_dataplus" identifier -> field_identifier) )) . field_identifier)) ;) comment (expression_statement "(*(code *)puVar1)(__return_storage_ptr__,pcVar2,pcVar2 + name->_M_string_length,0);" (call_expression "(*(code *)puVar1)(__return_storage_ptr__,pcVar2,pcVar2 + name->_M_string_length,0)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(__return_storage_ptr__,pcVar2,pcVar2 + name->_M_string_length,0)" ( identifier , identifier , (binary_expression "pcVar2 + name->_M_string_length" identifier + (field_expression "name->_M_string_length" identifier -> field_identifier)) , number_literal ))) ;) (labeled_statement "LAB_0025f61c:\n  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar5) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" statement_identifier : (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar5) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar5)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar5)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar5" (binary_expression "allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n       *)extra_name._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier))) != identifier) )) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (return_statement "return __return_storage_ptr__;" return identifier ;) (ERROR "}" }))
(translation_unit "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)\n\n{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  undefined1 *local_118;\n  undefined4 local_114;\n  undefined1 auStack_110 [152];\n  undefined1 *local_78;\n  undefined4 local_74;\n  undefined1 auStack_70 [16];\n  int *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34;\n  code *local_30;\n  int *local_2c;\n  \n  local_30 = (code *)PTR__M_construct<char*>_0043248c;\n  local_118 = auStack_110;\n  (*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);\n                    \n  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);\n                    \n  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n  local_2c = &local_40;\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }\n  local_44 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);\n  if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }\n  piVar1 = *(int **)param_2;\n  if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }\n  *(Dirsearch **)this = this + 8;\n                    \n  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\nLAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return this;\n}\n\n" (ERROR "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" (binary_expression "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" identifier * (call_expression "__thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" identifier (ERROR "gold::Dirsearch::find_file_in_dir_list" identifier : : identifier : : identifier) (argument_list "(Dirsearch *this,string *param_1,vector *param_2,string *param_3)" ( (binary_expression "Dirsearch *this" identifier * identifier) , (binary_expression "string *param_1" identifier * identifier) , (binary_expression "vector *param_2" identifier * identifier) , (binary_expression "string *param_3" identifier * identifier) ))))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  undefined1 *local_118;\n  undefined4 local_114;\n  undefined1 auStack_110 [152];\n  undefined1 *local_78;\n  undefined4 local_74;\n  undefined1 auStack_70 [16];\n  int *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34;\n  code *local_30;\n  int *local_2c;\n  \n  local_30 = (code *)PTR__M_construct<char*>_0043248c;\n  local_118 = auStack_110;\n  (*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);\n                    \n  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);\n                    \n  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n  local_2c = &local_40;\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }\n  local_44 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);\n  if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }\n  piVar1 = *(int **)param_2;\n  if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }\n  *(Dirsearch **)this = this + 8;\n                    \n  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\nLAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return this;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined1 *local_118;" type_identifier (pointer_declarator "*local_118" * identifier) ;) (declaration "undefined4 local_114;" type_identifier identifier ;) (declaration "undefined1 auStack_110 [152];" type_identifier (array_declarator "auStack_110 [152]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined4 local_74;" type_identifier identifier ;) (declaration "undefined1 auStack_70 [16];" type_identifier (array_declarator "auStack_70 [16]" identifier [ number_literal ]) ;) (declaration "int *local_60;" primitive_type (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int *local_2c;" primitive_type (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "local_30 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "local_30 = (code *)PTR__M_construct<char*>_0043248c" identifier = (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) < identifier) (ERROR "*" *) > identifier)) ;) (expression_statement "local_118 = auStack_110;" (assignment_expression "local_118 = auStack_110" identifier = identifier) ;) (expression_statement "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);" (call_expression "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_0043248c)" ( (binary_expression "*(code *)PTR__M_construct<char*>_0043248c" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" * (cast_expression "(code *)PTR__M_construct" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) (ERROR "*" *) > identifier) )) (argument_list "(&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0)" ( (pointer_expression "&local_118" & identifier) , (pointer_expression "*(int *)param_3" * (cast_expression "(int *)param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*(int *)param_3 + *(int *)(param_3 + 4)" (pointer_expression "*(int *)param_3" * (cast_expression "(int *)param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(param_3 + 4)" * (cast_expression "(int *)(param_3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 4)" ( (binary_expression "param_3 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" ( (pointer_expression "*(code *)PTR__M_replace_aux_00433338" * (cast_expression "(code *)PTR__M_replace_aux_00433338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_118,local_114,0,1,0x2f)" ( (pointer_expression "&local_118" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));" (assignment_expression "piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" ( (pointer_expression "*(code *)PTR__M_append_00432c50" * (cast_expression "(code *)PTR__M_append_00432c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (pointer_expression "&local_118" & identifier) , (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ))))) ;) (expression_statement "local_2c = &local_40;" (assignment_expression "local_2c = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (if_statement "if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" if (parenthesized_expression "((int *)*piVar1 == piVar1 + 2)" ( (binary_expression "(int *)*piVar1 == piVar1 + 2" (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)) == (binary_expression "piVar1 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }" { (expression_statement "local_40 = piVar1[2];" (assignment_expression "local_40 = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_3c = piVar1[3];" (assignment_expression "local_3c = piVar1[3]" identifier = (subscript_expression "piVar1[3]" identifier [ number_literal ])) ;) (expression_statement "local_38 = piVar1[4];" (assignment_expression "local_38 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (expression_statement "local_34 = piVar1[5];" (assignment_expression "local_34 = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "local_48 = local_2c;" (assignment_expression "local_48 = local_2c" identifier = identifier) ;) }) (else_clause "else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" else (compound_statement "{\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" { (expression_statement "local_40 = piVar1[2];" (assignment_expression "local_40 = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_48 = (int *)*piVar1;" (assignment_expression "local_48 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }))) (expression_statement "local_44 = piVar1[1];" (assignment_expression "local_44 = piVar1[1]" identifier = (subscript_expression "piVar1[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar1 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar1 + 2)" * (cast_expression "(undefined1 *)(piVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar1 + 2)" ( (binary_expression "piVar1 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar1 = (int)(piVar1 + 2);" (assignment_expression "*piVar1 = (int)(piVar1 + 2)" (pointer_expression "*piVar1" * identifier) = (cast_expression "(int)(piVar1 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar1 + 2)" ( (binary_expression "piVar1 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_118 != auStack_110)" ( (binary_expression "local_118 != auStack_110" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118)" identifier = (call_expression "(*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" ( (pointer_expression "*(code *)PTR___xstat64_004368b0" * (cast_expression "(code *)PTR___xstat64_004368b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,local_48,&local_118)" ( number_literal , identifier , (pointer_expression "&local_118" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }" { (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" * (cast_expression "(Dirsearch **)this" ( (type_descriptor "Dirsearch **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (if_statement "if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" if (parenthesized_expression "(local_48 == local_2c)" ( (binary_expression "local_48 == local_2c" identifier == identifier) )) (compound_statement "{\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }" { (expression_statement "*(int *)(this + 8) = local_40;" (assignment_expression "*(int *)(this + 8) = local_40" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0xc) = local_3c;" (assignment_expression "*(int *)(this + 0xc) = local_3c" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x10) = local_38;" (assignment_expression "*(int *)(this + 0x10) = local_38" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x14) = local_34;" (assignment_expression "*(int *)(this + 0x14) = local_34" (pointer_expression "*(int *)(this + 0x14)" * (cast_expression "(int *)(this + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_44;" (assignment_expression "*(int *)(this + 4) = local_44" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" else (compound_statement "{\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" { (expression_statement "*(int **)this = local_48;" (assignment_expression "*(int **)this = local_48" (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 8) = local_40;" (assignment_expression "*(int *)(this + 8) = local_40" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_44;" (assignment_expression "*(int *)(this + 4) = local_44" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }))) (return_statement "return this;" return identifier ;) })) (expression_statement "piVar1 = *(int **)param_2;" (assignment_expression "piVar1 = *(int **)param_2" identifier = (pointer_expression "*(int **)param_2" * (cast_expression "(int **)param_2" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }" if (parenthesized_expression "(piVar1 != *(int **)(param_2 + 4))" ( (binary_expression "piVar1 != *(int **)(param_2 + 4)" identifier != (pointer_expression "*(int **)(param_2 + 4)" * (cast_expression "(int **)(param_2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }" { (do_statement "do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);" do (compound_statement "{\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    }" { (expression_statement "local_78 = auStack_70;" (assignment_expression "local_78 = auStack_70" identifier = identifier) ;) (expression_statement "(*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);" (call_expression "(*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0)" (parenthesized_expression "(*local_30)" ( (pointer_expression "*local_30" * identifier) )) (argument_list "(&local_78,*piVar1,*piVar1 + piVar1[1],0)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*piVar1" * identifier) , (binary_expression "*piVar1 + piVar1[1]" (pointer_expression "*piVar1" * identifier) + (subscript_expression "piVar1[1]" identifier [ number_literal ])) , number_literal ))) ;) (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" ( (pointer_expression "*(code *)PTR__M_replace_aux_00433338" * (cast_expression "(code *)PTR__M_replace_aux_00433338" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,local_74,0,1,0x2f)" ( (pointer_expression "&local_78" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));" (assignment_expression "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" identifier = (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" ( (pointer_expression "*(code *)PTR__M_append_00432c50" * (cast_expression "(code *)PTR__M_append_00432c50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "*(undefined4 *)param_1" * (cast_expression "(undefined4 *)param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (pointer_expression "*(undefined4 *)(param_1 + 4)" * (cast_expression "(undefined4 *)(param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) ))))) ;) (expression_statement "local_60 = (int *)*piVar3;" (assignment_expression "local_60 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }" if (parenthesized_expression "(local_60 == piVar3 + 2)" ( (binary_expression "local_60 == piVar3 + 2" identifier == (binary_expression "piVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }" { (expression_statement "local_58 = piVar3[2];" (assignment_expression "local_58 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_54 = piVar3[3];" (assignment_expression "local_54 = piVar3[3]" identifier = (subscript_expression "piVar3[3]" identifier [ number_literal ])) ;) (expression_statement "local_50 = piVar3[4];" (assignment_expression "local_50 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) ;) (expression_statement "local_4c = piVar3[5];" (assignment_expression "local_4c = piVar3[5]" identifier = (subscript_expression "piVar3[5]" identifier [ number_literal ])) ;) (expression_statement "local_60 = &local_58;" (assignment_expression "local_60 = &local_58" identifier = (pointer_expression "&local_58" & identifier)) ;) }) (else_clause "else {\n        local_58 = piVar3[2];\n      }" else (compound_statement "{\n        local_58 = piVar3[2];\n      }" { (expression_statement "local_58 = piVar3[2];" (assignment_expression "local_58 = piVar3[2]" identifier = (subscript_expression "piVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_5c = piVar3[1];" (assignment_expression "local_5c = piVar3[1]" identifier = (subscript_expression "piVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" * (cast_expression "(undefined1 *)(piVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_78 != auStack_70)" ( (binary_expression "local_78 != auStack_70" identifier != identifier) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118)" identifier = (call_expression "(*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" ( (pointer_expression "*(code *)PTR___xstat64_004368b0" * (cast_expression "(code *)PTR___xstat64_004368b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,local_60,&local_118)" ( number_literal , identifier , (pointer_expression "&local_118" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }" { (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" * (cast_expression "(Dirsearch **)this" ( (type_descriptor "Dirsearch **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (if_statement "if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" if (parenthesized_expression "(local_60 == &local_58)" ( (binary_expression "local_60 == &local_58" identifier == (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }" { (expression_statement "*(int *)(this + 8) = local_58;" (assignment_expression "*(int *)(this + 8) = local_58" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0xc) = local_54;" (assignment_expression "*(int *)(this + 0xc) = local_54" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x10) = local_50;" (assignment_expression "*(int *)(this + 0x10) = local_50" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 0x14) = local_4c;" (assignment_expression "*(int *)(this + 0x14) = local_4c" (pointer_expression "*(int *)(this + 0x14)" * (cast_expression "(int *)(this + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x14)" ( (binary_expression "this + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_5c;" (assignment_expression "*(int *)(this + 4) = local_5c" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" else (compound_statement "{\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" { (expression_statement "*(int **)this = local_60;" (assignment_expression "*(int **)this = local_60" (pointer_expression "*(int **)this" * (cast_expression "(int **)this" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(this + 8) = local_58;" (assignment_expression "*(int *)(this + 8) = local_58" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(this + 4) = local_5c;" (assignment_expression "*(int *)(this + 4) = local_5c" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) }))) (goto_statement "goto LAB_0025f61c;" goto statement_identifier ;) })) (if_statement "if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" if (parenthesized_expression "(local_60 != &local_58)" ( (binary_expression "local_60 != &local_58" identifier != (pointer_expression "&local_58" & identifier)) )) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "piVar1 = piVar1 + 7;" (assignment_expression "piVar1 = piVar1 + 7" identifier = (binary_expression "piVar1 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int **)(param_2 + 4) != piVar1)" ( (binary_expression "*(int **)(param_2 + 4) != piVar1" (pointer_expression "*(int **)(param_2 + 4)" * (cast_expression "(int **)(param_2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" * (cast_expression "(Dirsearch **)this" ( (type_descriptor "Dirsearch **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (binary_expression "this + 8" identifier + number_literal)) ;) (expression_statement "(*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);" (call_expression "(*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" (parenthesized_expression "(*local_30)" ( (pointer_expression "*local_30" * identifier) )) (argument_list "(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" ( identifier , (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*(int *)param_1 + *(int *)(param_1 + 4)" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) , number_literal ))) ;) (labeled_statement "LAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" statement_identifier : (if_statement "if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" if (parenthesized_expression "(local_48 != local_2c)" ( (binary_expression "local_48 != local_2c" identifier != identifier) )) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" { (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" ( (pointer_expression "*(code *)PTR_operator_delete_0043228c" * (cast_expression "(code *)PTR_operator_delete_0043228c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (return_statement "return this;" return identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (call_expression IDENT (ERROR IDENT : : IDENT : : IDENT) (argument_list ( (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) , (binary_expression IDENT * IDENT) ))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) < IDENT) (ERROR *) > IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) (ERROR *) > IDENT) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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) )))) = 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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) = IDENT) ;) }))) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ])) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_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 * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (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) )))) = 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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) (return_statement return IDENT ;) }))
(ERROR "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" (binary_expression "Dirsearch * __thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" (identifier "Dirsearch") (* "*") (call_expression "__thiscall\ngold::Dirsearch::find_file_in_dir_list\n          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)" (identifier "__thiscall") (ERROR "gold::Dirsearch::find_file_in_dir_list" (identifier "gold") (: ":") (: ":") (identifier "Dirsearch") (: ":") (: ":") (identifier "find_file_in_dir_list")) (argument_list "(Dirsearch *this,string *param_1,vector *param_2,string *param_3)" (( "(") (binary_expression "Dirsearch *this" (identifier "Dirsearch") (* "*") (identifier "this")) (, ",") (binary_expression "string *param_1" (identifier "string") (* "*") (identifier "param_1")) (, ",") (binary_expression "vector *param_2" (identifier "vector") (* "*") (identifier "param_2")) (, ",") (binary_expression "string *param_3" (identifier "string") (* "*") (identifier "param_3")) () ")"))))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int *piVar3;\n  undefined1 *local_118;\n  undefined4 local_114;\n  undefined1 auStack_110 [152];\n  undefined1 *local_78;\n  undefined4 local_74;\n  undefined1 auStack_70 [16];\n  int *local_60;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int *local_48;\n  int local_44;\n  int local_40;\n  int local_3c;\n  int local_38;\n  int local_34;\n  code *local_30;\n  int *local_2c;\n  \n  local_30 = (code *)PTR__M_construct<char*>_0043248c;\n  local_118 = auStack_110;\n  (*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);\n                    \n  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);\n                    \n  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n  local_2c = &local_40;\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }\n  local_44 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);\n  if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }\n  piVar1 = *(int **)param_2;\n  if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }\n  *(Dirsearch **)this = this + 8;\n                    \n  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);\nLAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }\n  return this;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined1 *local_118;" (type_identifier "undefined1") (pointer_declarator "*local_118" (* "*") (identifier "local_118")) (; ";")) (declaration "undefined4 local_114;" (type_identifier "undefined4") (identifier "local_114") (; ";")) (declaration "undefined1 auStack_110 [152];" (type_identifier "undefined1") (array_declarator "auStack_110 [152]" (identifier "auStack_110") ([ "[") (number_literal "152") (] "]")) (; ";")) (declaration "undefined1 *local_78;" (type_identifier "undefined1") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined4 local_74;" (type_identifier "undefined4") (identifier "local_74") (; ";")) (declaration "undefined1 auStack_70 [16];" (type_identifier "undefined1") (array_declarator "auStack_70 [16]" (identifier "auStack_70") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int *local_60;" (primitive_type "int") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int *local_48;" (primitive_type "int") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "code *local_30;" (type_identifier "code") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int *local_2c;" (primitive_type "int") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (expression_statement "local_30 = (code *)PTR__M_construct<char*>_0043248c;" (assignment_expression "local_30 = (code *)PTR__M_construct<char*>_0043248c" (identifier "local_30") (= "=") (binary_expression "(code *)PTR__M_construct<char*>_0043248c" (binary_expression "(code *)PTR__M_construct<char" (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct")) (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_0043248c"))) (; ";")) (expression_statement "local_118 = auStack_110;" (assignment_expression "local_118 = auStack_110" (identifier "local_118") (= "=") (identifier "auStack_110")) (; ";")) (expression_statement "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);" (call_expression "(*(code *)PTR__M_construct<char*>_0043248c)\n            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0)" (parenthesized_expression "(*(code *)PTR__M_construct<char*>_0043248c)" (( "(") (binary_expression "*(code *)PTR__M_construct<char*>_0043248c" (binary_expression "*(code *)PTR__M_construct<char" (pointer_expression "*(code *)PTR__M_construct" (* "*") (cast_expression "(code *)PTR__M_construct" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_construct"))) (< "<") (identifier "char")) (ERROR "*" (* "*")) (> ">") (identifier "_0043248c")) () ")")) (argument_list "(&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0)" (( "(") (pointer_expression "&local_118" (& "&") (identifier "local_118")) (, ",") (pointer_expression "*(int *)param_3" (* "*") (cast_expression "(int *)param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (, ",") (binary_expression "*(int *)param_3 + *(int *)(param_3 + 4)" (pointer_expression "*(int *)param_3" (* "*") (cast_expression "(int *)param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))) (+ "+") (pointer_expression "*(int *)(param_3 + 4)" (* "*") (cast_expression "(int *)(param_3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 4)" (( "(") (binary_expression "param_3 + 4" (identifier "param_3") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" (( "(") (pointer_expression "*(code *)PTR__M_replace_aux_00433338" (* "*") (cast_expression "(code *)PTR__M_replace_aux_00433338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_replace_aux_00433338"))) () ")")) (argument_list "(&local_118,local_114,0,1,0x2f)" (( "(") (pointer_expression "&local_118" (& "&") (identifier "local_118")) (, ",") (identifier "local_114") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x2f") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));" (assignment_expression "piVar1 = (int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (identifier "piVar1") (= "=") (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR__M_append_00432c50)\n                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" (( "(") (pointer_expression "*(code *)PTR__M_append_00432c50" (* "*") (cast_expression "(code *)PTR__M_append_00432c50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_append_00432c50"))) () ")")) (argument_list "(&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (( "(") (pointer_expression "&local_118" (& "&") (identifier "local_118")) (, ",") (pointer_expression "*(undefined4 *)param_1" (* "*") (cast_expression "(undefined4 *)param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "local_2c = &local_40;" (assignment_expression "local_2c = &local_40" (identifier "local_2c") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (if_statement "if ((int *)*piVar1 == piVar1 + 2) {\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }\n  else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" (if "if") (parenthesized_expression "((int *)*piVar1 == piVar1 + 2)" (( "(") (binary_expression "(int *)*piVar1 == piVar1 + 2" (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (== "==") (binary_expression "piVar1 + 2" (identifier "piVar1") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n    local_40 = piVar1[2];\n    local_3c = piVar1[3];\n    local_38 = piVar1[4];\n    local_34 = piVar1[5];\n    local_48 = local_2c;\n  }" ({ "{") (expression_statement "local_40 = piVar1[2];" (assignment_expression "local_40 = piVar1[2]" (identifier "local_40") (= "=") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_3c = piVar1[3];" (assignment_expression "local_3c = piVar1[3]" (identifier "local_3c") (= "=") (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_38 = piVar1[4];" (assignment_expression "local_38 = piVar1[4]" (identifier "local_38") (= "=") (subscript_expression "piVar1[4]" (identifier "piVar1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_34 = piVar1[5];" (assignment_expression "local_34 = piVar1[5]" (identifier "local_34") (= "=") (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_48 = local_2c;" (assignment_expression "local_48 = local_2c" (identifier "local_48") (= "=") (identifier "local_2c")) (; ";")) (} "}")) (else_clause "else {\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" (else "else") (compound_statement "{\n    local_40 = piVar1[2];\n    local_48 = (int *)*piVar1;\n  }" ({ "{") (expression_statement "local_40 = piVar1[2];" (assignment_expression "local_40 = piVar1[2]" (identifier "local_40") (= "=") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_48 = (int *)*piVar1;" (assignment_expression "local_48 = (int *)*piVar1" (identifier "local_48") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (} "}")))) (expression_statement "local_44 = piVar1[1];" (assignment_expression "local_44 = piVar1[1]" (identifier "local_44") (= "=") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(piVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar1 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar1 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar1 + 2)" (( "(") (binary_expression "piVar1 + 2" (identifier "piVar1") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar1 = (int)(piVar1 + 2);" (assignment_expression "*piVar1 = (int)(piVar1 + 2)" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (cast_expression "(int)(piVar1 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar1 + 2)" (( "(") (binary_expression "piVar1 + 2" (identifier "piVar1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar1[1] = 0;" (assignment_expression "piVar1[1] = 0" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_118 != auStack_110) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" (if "if") (parenthesized_expression "(local_118 != auStack_110)" (( "(") (binary_expression "local_118 != auStack_110" (identifier "local_118") (!= "!=") (identifier "auStack_110")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" (( "(") (pointer_expression "*(code *)PTR___xstat64_004368b0" (* "*") (cast_expression "(code *)PTR___xstat64_004368b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___xstat64_004368b0"))) () ")")) (argument_list "(3,local_48,&local_118)" (( "(") (number_literal "3") (, ",") (identifier "local_48") (, ",") (pointer_expression "&local_118" (& "&") (identifier "local_118")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(Dirsearch **)this = this + 8;\n    if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }\n    return this;\n  }" ({ "{") (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" (* "*") (cast_expression "(Dirsearch **)this" (( "(") (type_descriptor "Dirsearch **" (type_identifier "Dirsearch") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (local_48 == local_2c) {\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }\n    else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" (if "if") (parenthesized_expression "(local_48 == local_2c)" (( "(") (binary_expression "local_48 == local_2c" (identifier "local_48") (== "==") (identifier "local_2c")) () ")")) (compound_statement "{\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 0xc) = local_3c;\n      *(int *)(this + 0x10) = local_38;\n      *(int *)(this + 0x14) = local_34;\n      *(int *)(this + 4) = local_44;\n    }" ({ "{") (expression_statement "*(int *)(this + 8) = local_40;" (assignment_expression "*(int *)(this + 8) = local_40" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(int *)(this + 0xc) = local_3c;" (assignment_expression "*(int *)(this + 0xc) = local_3c" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(int *)(this + 0x10) = local_38;" (assignment_expression "*(int *)(this + 0x10) = local_38" (pointer_expression "*(int *)(this + 0x10)" (* "*") (cast_expression "(int *)(this + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_38")) (; ";")) (expression_statement "*(int *)(this + 0x14) = local_34;" (assignment_expression "*(int *)(this + 0x14) = local_34" (pointer_expression "*(int *)(this + 0x14)" (* "*") (cast_expression "(int *)(this + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x14)" (( "(") (binary_expression "this + 0x14" (identifier "this") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "local_34")) (; ";")) (expression_statement "*(int *)(this + 4) = local_44;" (assignment_expression "*(int *)(this + 4) = local_44" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (} "}")) (else_clause "else {\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" (else "else") (compound_statement "{\n      *(int **)this = local_48;\n      *(int *)(this + 8) = local_40;\n      *(int *)(this + 4) = local_44;\n    }" ({ "{") (expression_statement "*(int **)this = local_48;" (assignment_expression "*(int **)this = local_48" (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(int *)(this + 8) = local_40;" (assignment_expression "*(int *)(this + 8) = local_40" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (expression_statement "*(int *)(this + 4) = local_44;" (assignment_expression "*(int *)(this + 4) = local_44" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_44")) (; ";")) (} "}")))) (return_statement "return this;" (return "return") (identifier "this") (; ";")) (} "}"))) (expression_statement "piVar1 = *(int **)param_2;" (assignment_expression "piVar1 = *(int **)param_2" (identifier "piVar1") (= "=") (pointer_expression "*(int **)param_2" (* "*") (cast_expression "(int **)param_2" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_2")))) (; ";")) (if_statement "if (piVar1 != *(int **)(param_2 + 4)) {\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }" (if "if") (parenthesized_expression "(piVar1 != *(int **)(param_2 + 4))" (( "(") (binary_expression "piVar1 != *(int **)(param_2 + 4)" (identifier "piVar1") (!= "!=") (pointer_expression "*(int **)(param_2 + 4)" (* "*") (cast_expression "(int **)(param_2 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n    do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);\n  }" ({ "{") (do_statement "do {\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    } while (*(int **)(param_2 + 4) != piVar1);" (do "do") (compound_statement "{\n                    \n      local_78 = auStack_70;\n      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);\n                    \n      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);\n                    \n      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));\n      local_60 = (int *)*piVar3;\n      if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }\n      local_5c = piVar3[1];\n      *(undefined1 *)(piVar3 + 2) = 0;\n      *piVar3 = (int)(piVar3 + 2);\n      piVar3[1] = 0;\n      if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);\n      if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }\n      if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }\n      piVar1 = piVar1 + 7;\n    }" ({ "{") (expression_statement "local_78 = auStack_70;" (assignment_expression "local_78 = auStack_70" (identifier "local_78") (= "=") (identifier "auStack_70")) (; ";")) (expression_statement "(*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);" (call_expression "(*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0)" (parenthesized_expression "(*local_30)" (( "(") (pointer_expression "*local_30" (* "*") (identifier "local_30")) () ")")) (argument_list "(&local_78,*piVar1,*piVar1 + piVar1[1],0)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (, ",") (binary_expression "*piVar1 + piVar1[1]" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);" (call_expression "(*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f)" (parenthesized_expression "(*(code *)PTR__M_replace_aux_00433338)" (( "(") (pointer_expression "*(code *)PTR__M_replace_aux_00433338" (* "*") (cast_expression "(code *)PTR__M_replace_aux_00433338" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_replace_aux_00433338"))) () ")")) (argument_list "(&local_78,local_74,0,1,0x2f)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "local_74") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x2f") () ")"))) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));" (assignment_expression "piVar3 = (int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR__M_append_00432c50)\n                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (parenthesized_expression "(*(code *)PTR__M_append_00432c50)" (( "(") (pointer_expression "*(code *)PTR__M_append_00432c50" (* "*") (cast_expression "(code *)PTR__M_append_00432c50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_append_00432c50"))) () ")")) (argument_list "(&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4))" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "*(undefined4 *)param_1" (* "*") (cast_expression "(undefined4 *)param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) () ")"))))) (; ";")) (expression_statement "local_60 = (int *)*piVar3;" (assignment_expression "local_60 = (int *)*piVar3" (identifier "local_60") (= "=") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (if_statement "if (local_60 == piVar3 + 2) {\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }\n      else {\n        local_58 = piVar3[2];\n      }" (if "if") (parenthesized_expression "(local_60 == piVar3 + 2)" (( "(") (binary_expression "local_60 == piVar3 + 2" (identifier "local_60") (== "==") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n        local_58 = piVar3[2];\n        local_54 = piVar3[3];\n        local_50 = piVar3[4];\n        local_4c = piVar3[5];\n        local_60 = &local_58;\n      }" ({ "{") (expression_statement "local_58 = piVar3[2];" (assignment_expression "local_58 = piVar3[2]" (identifier "local_58") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_54 = piVar3[3];" (assignment_expression "local_54 = piVar3[3]" (identifier "local_54") (= "=") (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_50 = piVar3[4];" (assignment_expression "local_50 = piVar3[4]" (identifier "local_50") (= "=") (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_4c = piVar3[5];" (assignment_expression "local_4c = piVar3[5]" (identifier "local_4c") (= "=") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_60 = &local_58;" (assignment_expression "local_60 = &local_58" (identifier "local_60") (= "=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) (; ";")) (} "}")) (else_clause "else {\n        local_58 = piVar3[2];\n      }" (else "else") (compound_statement "{\n        local_58 = piVar3[2];\n      }" ({ "{") (expression_statement "local_58 = piVar3[2];" (assignment_expression "local_58 = piVar3[2]" (identifier "local_58") (= "=") (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "local_5c = piVar3[1];" (assignment_expression "local_5c = piVar3[1]" (identifier "local_5c") (= "=") (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(piVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar3 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar3 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(piVar3 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar3[1] = 0;" (assignment_expression "piVar3[1] = 0" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_78 != auStack_70) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" (if "if") (parenthesized_expression "(local_78 != auStack_70)" (( "(") (binary_expression "local_78 != auStack_70" (identifier "local_78") (!= "!=") (identifier "auStack_70")) () ")")) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118)" (parenthesized_expression "(*(code *)PTR___xstat64_004368b0)" (( "(") (pointer_expression "*(code *)PTR___xstat64_004368b0" (* "*") (cast_expression "(code *)PTR___xstat64_004368b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___xstat64_004368b0"))) () ")")) (argument_list "(3,local_60,&local_118)" (( "(") (number_literal "3") (, ",") (identifier "local_60") (, ",") (pointer_expression "&local_118" (& "&") (identifier "local_118")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(Dirsearch **)this = this + 8;\n        if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }\n        goto LAB_0025f61c;\n      }" ({ "{") (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" (* "*") (cast_expression "(Dirsearch **)this" (( "(") (type_descriptor "Dirsearch **" (type_identifier "Dirsearch") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (local_60 == &local_58) {\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }\n        else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" (if "if") (parenthesized_expression "(local_60 == &local_58)" (( "(") (binary_expression "local_60 == &local_58" (identifier "local_60") (== "==") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 0xc) = local_54;\n          *(int *)(this + 0x10) = local_50;\n          *(int *)(this + 0x14) = local_4c;\n          *(int *)(this + 4) = local_5c;\n        }" ({ "{") (expression_statement "*(int *)(this + 8) = local_58;" (assignment_expression "*(int *)(this + 8) = local_58" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(int *)(this + 0xc) = local_54;" (assignment_expression "*(int *)(this + 0xc) = local_54" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "local_54")) (; ";")) (expression_statement "*(int *)(this + 0x10) = local_50;" (assignment_expression "*(int *)(this + 0x10) = local_50" (pointer_expression "*(int *)(this + 0x10)" (* "*") (cast_expression "(int *)(this + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(int *)(this + 0x14) = local_4c;" (assignment_expression "*(int *)(this + 0x14) = local_4c" (pointer_expression "*(int *)(this + 0x14)" (* "*") (cast_expression "(int *)(this + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x14)" (( "(") (binary_expression "this + 0x14" (identifier "this") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(int *)(this + 4) = local_5c;" (assignment_expression "*(int *)(this + 4) = local_5c" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (} "}")) (else_clause "else {\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" (else "else") (compound_statement "{\n          *(int **)this = local_60;\n          *(int *)(this + 8) = local_58;\n          *(int *)(this + 4) = local_5c;\n        }" ({ "{") (expression_statement "*(int **)this = local_60;" (assignment_expression "*(int **)this = local_60" (pointer_expression "*(int **)this" (* "*") (cast_expression "(int **)this" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(int *)(this + 8) = local_58;" (assignment_expression "*(int *)(this + 8) = local_58" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_58")) (; ";")) (expression_statement "*(int *)(this + 4) = local_5c;" (assignment_expression "*(int *)(this + 4) = local_5c" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_5c")) (; ";")) (} "}")))) (goto_statement "goto LAB_0025f61c;" (goto "goto") (statement_identifier "LAB_0025f61c") (; ";")) (} "}"))) (if_statement "if (local_60 != &local_58) {\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" (if "if") (parenthesized_expression "(local_60 != &local_58)" (( "(") (binary_expression "local_60 != &local_58" (identifier "local_60") (!= "!=") (pointer_expression "&local_58" (& "&") (identifier "local_58"))) () ")")) (compound_statement "{\n        (*(code *)PTR_operator_delete_0043228c)();\n      }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = piVar1 + 7;" (assignment_expression "piVar1 = piVar1 + 7" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 7" (identifier "piVar1") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_2 + 4) != piVar1)" (( "(") (binary_expression "*(int **)(param_2 + 4) != piVar1" (pointer_expression "*(int **)(param_2 + 4)" (* "*") (cast_expression "(int **)(param_2 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "piVar1")) () ")")) (; ";")) (} "}"))) (expression_statement "*(Dirsearch **)this = this + 8;" (assignment_expression "*(Dirsearch **)this = this + 8" (pointer_expression "*(Dirsearch **)this" (* "*") (cast_expression "(Dirsearch **)this" (( "(") (type_descriptor "Dirsearch **" (type_identifier "Dirsearch") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "this"))) (= "=") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "(*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);" (call_expression "(*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" (parenthesized_expression "(*local_30)" (( "(") (pointer_expression "*local_30" (* "*") (identifier "local_30")) () ")")) (argument_list "(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0)" (( "(") (identifier "this") (, ",") (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (, ",") (binary_expression "*(int *)param_1 + *(int *)(param_1 + 4)" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0025f61c:\n  if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" (statement_identifier "LAB_0025f61c") (: ":") (if_statement "if (local_48 != local_2c) {\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" (if "if") (parenthesized_expression "(local_48 != local_2c)" (( "(") (binary_expression "local_48 != local_2c" (identifier "local_48") (!= "!=") (identifier "local_2c")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_0043228c)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_operator_delete_0043228c)();" (call_expression "(*(code *)PTR_operator_delete_0043228c)()" (parenthesized_expression "(*(code *)PTR_operator_delete_0043228c)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_0043228c" (* "*") (cast_expression "(code *)PTR_operator_delete_0043228c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_0043228c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return this;" (return "return") (identifier "this") (; ";")) (} "}"))

type_6 * gold::Dirsearch::find_file_in_dir_list
                   (type_6 *__return_storage_ptr__,type_6 *name,Dir_list *directories,
                   type_6 *extra_search_dir)

{
  type_1 *puVar1;
  type_2 var_9;
  int *var_10;
  int var_11;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_2 var_14;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_3 buf;
  type_4 *var_15;
  type_5 local_74;
  type_4 var_16 [16];
  type_6 full_name;
  type_6 extra_name;
  
  puVar1 = var_7<var_2*>var_8;
  var_9 = (extra_search_dir->_M_dataplus)._M_p;
  buf.st_dev = (ulong)(buf.st_pad1 + 1);
  (*(type_7 *)var_7<var_2*>var_8)
            (&buf,var_9,var_9 + extra_search_dir->_M_string_length,0);
                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */
  (*(type_7 *)PTR__M_replace_aux_00433338)(&buf,buf.st_pad1[0],0,1,0x2f);
                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */
  var_10 = (int *)(*(type_7 *)PTR__M_append_00432c50)
                            (&buf,(name->_M_dataplus)._M_p,name->_M_string_length);
  var_5 = &extra_name.field_2;
  if ((int *)*var_10 == var_10 + 2) {
    extra_name.field_2._M_allocated_capacity = var_10[2];
    extra_name.field_2._4_4_ = var_10[3];
    extra_name.field_2._8_4_ = var_10[4];
    extra_name.field_2._12_4_ = var_10[5];
    extra_name._M_dataplus._M_p = (type_2)var_5;
  }
  else {
    extra_name.field_2._M_allocated_capacity = var_10[2];
    extra_name._M_dataplus._M_p = (type_2)*var_10;
  }
  extra_name._M_string_length = var_10[1];
  *(type_4 *)(var_10 + 2) = 0;
  *var_10 = (int)(var_10 + 2);
  var_10[1] = 0;
  if ((long *)buf.st_dev != buf.st_pad1 + 1) {
    (*(type_7 *)PTR_operator_delete_0043228c)();
  }
  var_11 = (*(type_7 *)PTR___xstat64_004368b0)(3,extra_name._M_dataplus._M_p,&buf);
  if (var_11 == 0) {
    (__return_storage_ptr__->_M_dataplus)._M_p = (type_2)&__return_storage_ptr__->field_2;
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
         *)extra_name._M_dataplus._M_p == var_5) {
      (__return_storage_ptr__->field_2)._M_allocated_capacity =
           extra_name.field_2._M_allocated_capacity;
      *(type_5 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;
      *(type_5 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;
      *(type_5 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;
      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;
    }
    else {
      (__return_storage_ptr__->_M_dataplus)._M_p = extra_name._M_dataplus._M_p;
      (__return_storage_ptr__->field_2)._M_allocated_capacity =
           extra_name.field_2._M_allocated_capacity;
      __return_storage_ptr__->_M_string_length = extra_name._M_string_length;
    }
    return __return_storage_ptr__;
  }
  var_14 = (directories->
           super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
           _M_impl._M_start;
  if (var_14 != (directories->
                super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13)
                ._M_impl._M_finish) {
    var_6 = &full_name.field_2;
    do {
      var_9 = (var_14->name_)._M_dataplus._M_p;
                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */
      var_15 = var_16;
      (*(type_7 *)puVar1)(&var_15,var_9,var_9 + (var_14->name_)._M_string_length,0);
                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */
      (*(type_7 *)PTR__M_replace_aux_00433338)(&var_15,local_74,0,1,0x2f);
                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */
      var_10 = (int *)(*(type_7 *)PTR__M_append_00432c50)
                                (&var_15,(name->_M_dataplus)._M_p,name->_M_string_length);
      full_name._M_dataplus._M_p = (type_2)*var_10;
      if ((int *)full_name._M_dataplus._M_p == var_10 + 2) {
        full_name.field_2._M_allocated_capacity = var_10[2];
        full_name.field_2._4_4_ = var_10[3];
        full_name.field_2._8_4_ = var_10[4];
        full_name.field_2._12_4_ = var_10[5];
        full_name._M_dataplus._M_p = (type_2)var_6;
      }
      else {
        full_name.field_2._M_allocated_capacity = var_10[2];
      }
      full_name._M_string_length = var_10[1];
      *(type_4 *)(var_10 + 2) = 0;
      *var_10 = (int)(var_10 + 2);
      var_10[1] = 0;
      if (var_15 != var_16) {
        (*(type_7 *)PTR_operator_delete_0043228c)();
      }
      var_11 = (*(type_7 *)PTR___xstat64_004368b0)(3,full_name._M_dataplus._M_p,&buf);
      if (var_11 == 0) {
        (__return_storage_ptr__->_M_dataplus)._M_p = (type_2)&__return_storage_ptr__->field_2;
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)full_name._M_dataplus._M_p == var_6) {
          (__return_storage_ptr__->field_2)._M_allocated_capacity =
               full_name.field_2._M_allocated_capacity;
          *(type_5 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;
          *(type_5 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;
          *(type_5 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;
          __return_storage_ptr__->_M_string_length = full_name._M_string_length;
        }
        else {
          (__return_storage_ptr__->_M_dataplus)._M_p = full_name._M_dataplus._M_p;
          (__return_storage_ptr__->field_2)._M_allocated_capacity =
               full_name.field_2._M_allocated_capacity;
          __return_storage_ptr__->_M_string_length = full_name._M_string_length;
        }
        goto LAB_0025f61c;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)full_name._M_dataplus._M_p != var_6) {
        (*(type_7 *)PTR_operator_delete_0043228c)();
      }
      var_14 = var_14 + 1;
    } while ((directories->
             super__Vector_base<gold::var_12,_std::var_1<gold::var_12>var_3>var_13).
             _M_impl._M_finish != var_14);
  }
  (__return_storage_ptr__->_M_dataplus)._M_p = (type_2)&__return_storage_ptr__->field_2;
  var_9 = (name->_M_dataplus)._M_p;
                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */
  (*(type_7 *)puVar1)(__return_storage_ptr__,var_9,var_9 + name->_M_string_length,0);
LAB_0025f61c:
  if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
       *)extra_name._M_dataplus._M_p != var_5) {
    (*(type_7 *)PTR_operator_delete_0043228c)();
  }
  return __return_storage_ptr__;
}


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

/* gold::Dirsearch::MASKED(std::string const&, std::vector<gold::Search_directory,
   std::allocator<gold::Search_directory> > const&, std::string const&) */

Dirsearch * __thiscall
gold::Dirsearch::MASKED
          (Dirsearch *this,string *param_1,vector *param_2,string *param_3)

{
  int *piVar1;
  int iVar2;
  int *piVar3;
  undefined1 *local_118;
  undefined4 local_114;
  undefined1 auStack_110 [152];
  undefined1 *local_78;
  undefined4 local_74;
  undefined1 auStack_70 [16];
  int *local_60;
  int local_5c;
  int local_58;
  int local_54;
  int local_50;
  int local_4c;
  int *local_48;
  int local_44;
  int local_40;
  int local_3c;
  int local_38;
  int local_34;
  code *local_30;
  int *local_2c;
  
  local_30 = (code *)PTR__M_construct<char*>_0043248c;
  local_118 = auStack_110;
  (*(code *)PTR__M_construct<char*>_0043248c)
            (&local_118,*(int *)param_3,*(int *)param_3 + *(int *)(param_3 + 4),0);
                    /* try { // try from 0025f414 to 0025f41b has its CatchHandler @ 0025f7e8 */
  (*(code *)PTR__M_replace_aux_00433338)(&local_118,local_114,0,1,0x2f);
                    /* try { // try from 0025f42c to 0025f433 has its CatchHandler @ 0025f814 */
  piVar1 = (int *)(*(code *)PTR__M_append_00432c50)
                            (&local_118,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));
  local_2c = &local_40;
  if ((int *)*piVar1 == piVar1 + 2) {
    local_40 = piVar1[2];
    local_3c = piVar1[3];
    local_38 = piVar1[4];
    local_34 = piVar1[5];
    local_48 = local_2c;
  }
  else {
    local_40 = piVar1[2];
    local_48 = (int *)*piVar1;
  }
  local_44 = piVar1[1];
  *(undefined1 *)(piVar1 + 2) = 0;
  *piVar1 = (int)(piVar1 + 2);
  piVar1[1] = 0;
  if (local_118 != auStack_110) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_48,&local_118);
  if (iVar2 == 0) {
    *(Dirsearch **)this = this + 8;
    if (local_48 == local_2c) {
      *(int *)(this + 8) = local_40;
      *(int *)(this + 0xc) = local_3c;
      *(int *)(this + 0x10) = local_38;
      *(int *)(this + 0x14) = local_34;
      *(int *)(this + 4) = local_44;
    }
    else {
      *(int **)this = local_48;
      *(int *)(this + 8) = local_40;
      *(int *)(this + 4) = local_44;
    }
    return this;
  }
  piVar1 = *(int **)param_2;
  if (piVar1 != *(int **)(param_2 + 4)) {
    do {
                    /* try { // try from 0025f560 to 0025f567 has its CatchHandler @ 0025f794 */
      local_78 = auStack_70;
      (*local_30)(&local_78,*piVar1,*piVar1 + piVar1[1],0);
                    /* try { // try from 0025f580 to 0025f587 has its CatchHandler @ 0025f81c */
      (*(code *)PTR__M_replace_aux_00433338)(&local_78,local_74,0,1,0x2f);
                    /* try { // try from 0025f598 to 0025f59f has its CatchHandler @ 0025f7c4 */
      piVar3 = (int *)(*(code *)PTR__M_append_00432c50)
                                (&local_78,*(undefined4 *)param_1,*(undefined4 *)(param_1 + 4));
      local_60 = (int *)*piVar3;
      if (local_60 == piVar3 + 2) {
        local_58 = piVar3[2];
        local_54 = piVar3[3];
        local_50 = piVar3[4];
        local_4c = piVar3[5];
        local_60 = &local_58;
      }
      else {
        local_58 = piVar3[2];
      }
      local_5c = piVar3[1];
      *(undefined1 *)(piVar3 + 2) = 0;
      *piVar3 = (int)(piVar3 + 2);
      piVar3[1] = 0;
      if (local_78 != auStack_70) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      iVar2 = (*(code *)PTR___xstat64_004368b0)(3,local_60,&local_118);
      if (iVar2 == 0) {
        *(Dirsearch **)this = this + 8;
        if (local_60 == &local_58) {
          *(int *)(this + 8) = local_58;
          *(int *)(this + 0xc) = local_54;
          *(int *)(this + 0x10) = local_50;
          *(int *)(this + 0x14) = local_4c;
          *(int *)(this + 4) = local_5c;
        }
        else {
          *(int **)this = local_60;
          *(int *)(this + 8) = local_58;
          *(int *)(this + 4) = local_5c;
        }
        goto LAB_0025f61c;
      }
      if (local_60 != &local_58) {
        (*(code *)PTR_operator_delete_0043228c)();
      }
      piVar1 = piVar1 + 7;
    } while (*(int **)(param_2 + 4) != piVar1);
  }
  *(Dirsearch **)this = this + 8;
                    /* try { // try from 0025f610 to 0025f617 has its CatchHandler @ 0025f794 */
  (*local_30)(this,*(int *)param_1,*(int *)param_1 + *(int *)(param_1 + 4),0);
LAB_0025f61c:
  if (local_48 != local_2c) {
    (*(code *)PTR_operator_delete_0043228c)();
  }
  return this;
}

