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

{
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar2;
  pointer pcVar3;
  int *piVar4;
  int iVar5;
  pointer pSVar6;
  string extra_name;
  string full_name;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_94;
  stat buf;
  
  __x86_get_pc_thunk_di();
  pcVar3 = (extra_search_dir->_M_dataplus)._M_p;
  buf.st_dev._0_4_ = &buf.__pad1;
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&buf,
                      pcVar3,pcVar3 + extra_search_dir->_M_string_length,0);
                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */
  std::string::_M_replace_aux((string *)&buf,buf.st_dev._4_4_,0,1,'/');
                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */
  piVar4 = (int *)std::string::_M_append
                            ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);
  paVar1 = &extra_name.field_2;
  if ((int *)*piVar4 == piVar4 + 2) {
    extra_name.field_2._M_allocated_capacity = piVar4[2];
    extra_name.field_2._4_4_ = piVar4[3];
    extra_name.field_2._8_4_ = piVar4[4];
    extra_name.field_2._12_4_ = piVar4[5];
    extra_name._M_dataplus._M_p = (pointer)paVar1;
  }
  else {
    extra_name.field_2._M_allocated_capacity = piVar4[2];
    extra_name._M_dataplus._M_p = (pointer)*piVar4;
  }
  extra_name._M_string_length = piVar4[1];
  *(undefined1 *)(piVar4 + 2) = 0;
  *piVar4 = (int)(piVar4 + 2);
  piVar4[1] = 0;
  if ((ushort *)buf.st_dev != &buf.__pad1) {
    operator_delete((ushort *)buf.st_dev);
  }
  iVar5 = __xstat64(3,extra_name._M_dataplus._M_p,(stat64 *)&buf);
  if (iVar5 == 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 == paVar1) {
      (__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_;
    }
    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) {
    paVar2 = &full_name.field_2;
    do {
      pcVar3 = (pSVar6->name_)._M_dataplus._M_p;
      local_94._M_dataplus._M_p = (pointer)&local_94.field_2;
                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */
      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);
                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */
      std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');
                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */
      piVar4 = (int *)std::string::_M_append
                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length
                                );
      full_name._M_dataplus._M_p = (pointer)*piVar4;
      if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {
        full_name.field_2._M_allocated_capacity = piVar4[2];
        full_name.field_2._4_4_ = piVar4[3];
        full_name.field_2._8_4_ = piVar4[4];
        full_name.field_2._12_4_ = piVar4[5];
        full_name._M_dataplus._M_p = (pointer)paVar2;
      }
      else {
        full_name.field_2._M_allocated_capacity = piVar4[2];
      }
      full_name._M_string_length = piVar4[1];
      *(undefined1 *)(piVar4 + 2) = 0;
      *piVar4 = (int)(piVar4 + 2);
      piVar4[1] = 0;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)local_94._M_dataplus._M_p != &local_94.field_2) {
        operator_delete(local_94._M_dataplus._M_p);
      }
      iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);
      if (iVar5 == 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 == paVar2) {
          (__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_;
        }
        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_001a2277;
      }
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)full_name._M_dataplus._M_p != paVar2) {
        operator_delete(full_name._M_dataplus._M_p);
      }
      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;
  pcVar3 = (name->_M_dataplus)._M_p;
                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */
  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
  _M_construct<char*>(__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0);
LAB_001a2277:
  if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
       *)extra_name._M_dataplus._M_p != paVar1) {
    operator_delete(extra_name._M_dataplus._M_p);
  }
  return __return_storage_ptr__;
}



undefined4 * FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int *local_c4;
  int local_bc;
  int local_b8;
  int local_b4;
  int local_b0;
  int *local_ac;
  int local_a8;
  int local_a4;
  int local_a0;
  int local_9c;
  int local_98;
  undefined1 *local_94;
  undefined4 local_90;
  undefined1 local_8c [16];
  undefined1 *local_7c;
  undefined4 local_78;
  undefined1 local_74 [100];
  
  FUN_000559ee();
  local_7c = local_74;
  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);
                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */
  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);
                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */
  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);
  if ((int *)*piVar1 == piVar1 + 2) {
    local_bc = piVar1[2];
    local_b8 = piVar1[3];
    local_b4 = piVar1[4];
    local_b0 = piVar1[5];
    local_c4 = &local_bc;
  }
  else {
    local_bc = piVar1[2];
    local_c4 = (int *)*piVar1;
  }
  iVar3 = piVar1[1];
  *(undefined1 *)(piVar1 + 2) = 0;
  *piVar1 = (int)(piVar1 + 2);
  piVar1[1] = 0;
  if (local_7c != local_74) {
    FUN_001e6db0(local_7c);
  }
  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);
  if (iVar2 == 0) {
    *param_1 = param_1 + 2;
    if (local_c4 == &local_bc) {
      param_1[2] = local_bc;
      param_1[3] = local_b8;
      param_1[4] = local_b4;
      param_1[5] = local_b0;
    }
    else {
      *param_1 = local_c4;
      param_1[2] = local_bc;
    }
    param_1[1] = iVar3;
    return param_1;
  }
  piVar1 = (int *)*param_3;
  if (piVar1 != (int *)param_3[1]) {
    do {
      local_94 = local_8c;
                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */
      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);
                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */
      FUN_001ef630(&local_94,local_90,0,1,0x2f);
                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */
      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);
      local_ac = (int *)*piVar4;
      if (local_ac == piVar4 + 2) {
        local_a4 = piVar4[2];
        local_a0 = piVar4[3];
        local_9c = piVar4[4];
        local_98 = piVar4[5];
        local_ac = &local_a4;
      }
      else {
        local_a4 = piVar4[2];
      }
      local_a8 = piVar4[1];
      *(undefined1 *)(piVar4 + 2) = 0;
      *piVar4 = (int)(piVar4 + 2);
      piVar4[1] = 0;
      if (local_94 != local_8c) {
        FUN_001e6db0(local_94);
      }
      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);
      if (iVar3 == 0) {
        *param_1 = param_1 + 2;
        if (local_ac == &local_a4) {
          param_1[2] = local_a4;
          param_1[3] = local_a0;
          param_1[4] = local_9c;
          param_1[5] = local_98;
        }
        else {
          *param_1 = local_ac;
          param_1[2] = local_a4;
        }
        param_1[1] = local_a8;
        goto LAB_001a2277;
      }
      if (local_ac != &local_a4) {
        FUN_001e6db0(local_ac);
      }
      piVar1 = piVar1 + 7;
    } while ((int *)param_3[1] != piVar1);
  }
  *param_1 = param_1 + 2;
                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */
  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);
LAB_001a2277:
  if (local_c4 != &local_bc) {
    FUN_001e6db0(local_c4);
  }
  return param_1;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x000559ee
ADD EDI,0x1ecff7
PUSH ESI
LEA ESI,[EBP + -0x70]
PUSH EBX
LEA EBX,[EBP + -0x78]
SUB ESP,0xdc
MOV EDX,dword ptr [EBP + 0x14]
MOV dword ptr [EBP + -0x78],ESI
MOV EAX,dword ptr [EDX]
PUSH 0x0
MOV ECX,dword ptr [EDX + 0x4]
ADD ECX,EAX
PUSH ECX
PUSH EAX
PUSH EBX
CALL 0x000513a0
MOV dword ptr [ESP],0x2f
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + -0x74]
PUSH EBX
MOV dword ptr [EBP + 0xffffff28],EBX
MOV EBX,EDI
CALL 0x001ef630
MOV EAX,dword ptr [EBP + 0xc]
ADD ESP,0x1c
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH dword ptr [EBP + 0xffffff28]
CALL 0x001f05c0
LEA EBX,[EBP + 0xffffff48]
LEA EDX,[EAX + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff40],EBX
MOV ECX,dword ptr [EAX]
MOV dword ptr [EBP + 0xffffff24],EBX
CMP ECX,EDX
JZ 0x001a2320
MOV dword ptr [EBP + 0xffffff40],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff48],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV byte ptr [EAX + 0x8],0x0
MOV dword ptr [EBP + 0xffffff44],ECX
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],0x0
MOV EAX,dword ptr [EBP + -0x78]
CMP EAX,ESI
JZ 0x001a20c2
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff28]
MOV EBX,EDI
PUSH dword ptr [EBP + 0xffffff40]
PUSH 0x3
CALL 0x000291b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001a22a0
MOV EAX,dword ptr [EBP + 0x10]
MOV ESI,dword ptr [EAX]
CMP ESI,dword ptr [EAX + 0x4]
JZ 0x001a2250
LEA EAX,[EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff34],EAX
LEA EAX,[EBP + 0xffffff78]
MOV dword ptr [EBP + 0xffffff30],EAX
LEA EAX,[EBP + 0xffffff60]
MOV dword ptr [EBP + 0xffffff2c],EAX
JMP 0x001a21ad
MOV dword ptr [EBP + 0xffffff58],ECX
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff60],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV byte ptr [EAX + 0x8],0x0
MOV dword ptr [EBP + 0xffffff5c],ECX
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],0x0
MOV EAX,dword ptr [EBP + 0xffffff70]
CMP EAX,dword ptr [EBP + 0xffffff30]
JZ 0x001a2161
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff28]
MOV EBX,EDI
PUSH dword ptr [EBP + 0xffffff58]
PUSH 0x3
CALL 0x000291b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001a22e8
MOV EAX,dword ptr [EBP + 0xffffff58]
CMP EAX,dword ptr [EBP + 0xffffff2c]
JZ 0x001a219e
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x10]
ADD ESI,0x1c
CMP dword ptr [EAX + 0x4],ESI
JZ 0x001a2250
MOV EAX,dword ptr [EBP + 0xffffff30]
MOV EBX,dword ptr [EBP + 0xffffff34]
MOV dword ptr [EBP + 0xffffff70],EAX
MOV EAX,dword ptr [ESI]
PUSH 0x0
MOV EDX,dword ptr [ESI + 0x4]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH EBX
CALL 0x000513a0
MOV dword ptr [ESP],0x2f
PUSH 0x1
PUSH 0x0
PUSH dword ptr [EBP + 0xffffff74]
PUSH EBX
MOV dword ptr [EBP + 0xffffff34],EBX
MOV EBX,EDI
CALL 0x001ef630
MOV EAX,dword ptr [EBP + 0xc]
ADD ESP,0x1c
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
PUSH dword ptr [EBP + 0xffffff34]
CALL 0x001f05c0
MOV EBX,dword ptr [EBP + 0xffffff2c]
LEA EDX,[EAX + 0x8]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff58],EBX
MOV ECX,dword ptr [EAX]
CMP ECX,EDX
JNZ 0x001a2120
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff60],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + 0xffffff64],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xffffff68],ECX
MOV ECX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + 0xffffff6c],ECX
JMP 0x001a212f
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0x8]
ADD EAX,0x8
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EAX]
PUSH 0x0
MOV EDX,dword ptr [ESI + 0x4]
ADD EDX,EAX
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0x8]
CALL 0x000513a0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff40]
CMP EAX,dword ptr [EBP + 0xffffff24]
JZ 0x001a2293
SUB ESP,0xc
MOV EBX,EDI
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0x8]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
MOV EAX,dword ptr [EBP + 0x8]
MOV EDI,dword ptr [EBP + 0x8]
ADD EAX,0x8
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBP + 0xffffff40]
CMP EAX,dword ptr [EBP + 0xffffff24]
JZ 0x001a2349
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xffffff44]
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [EBP + 0x8]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
MOV EAX,dword ptr [EBP + 0x8]
MOV ESI,dword ptr [EBP + 0x8]
ADD EAX,0x8
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
CMP EAX,dword ptr [EBP + 0xffffff2c]
JZ 0x001a2372
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [ESI + 0x4],EAX
JMP 0x001a2277
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + 0xffffff48],ECX
MOV ECX,dword ptr [EAX + 0xc]
MOV dword ptr [EBP + 0xffffff4c],ECX
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0xffffff50],ECX
MOV ECX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + 0xffffff54],ECX
JMP 0x001a2097
MOV EAX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EDI + 0x14],EAX
JMP 0x001a22cb
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EBP + 0xffffff68]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EBP + 0xffffff6c]
MOV dword ptr [ESI + 0x14],EAX
JMP 0x001a230f
(translation_unit "undefined4 * FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */\n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */\n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */\n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}\n\n" (function_definition "undefined4 * FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */\n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */\n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */\n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}" type_identifier (pointer_declarator "* FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" * (function_declarator "FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */\n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */\n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */\n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "int *local_ac;" primitive_type (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined1 *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined1 local_8c [16];" type_identifier (array_declarator "local_8c [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined1 local_74 [100];" type_identifier (array_declarator "local_74 [100]" identifier [ number_literal ]) ;) (expression_statement "FUN_000559ee();" (call_expression "FUN_000559ee()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_7c = local_74;" (assignment_expression "local_7c = local_74" identifier = identifier) ;) (expression_statement "FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);" (call_expression "FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0)" identifier (argument_list "((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0)" ( (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) , (pointer_expression "*param_4" * identifier) , (binary_expression "param_4[1] + *param_4" (subscript_expression "param_4[1]" identifier [ number_literal ]) + (pointer_expression "*param_4" * identifier)) , number_literal ))) ;) comment (expression_statement "FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);" (call_expression "FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f)" identifier (argument_list "((stat64 *)&local_7c,local_78,0,1,0x2f)" ( (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);" (assignment_expression "piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" identifier = (cast_expression "(int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" identifier (argument_list "((stat64 *)&local_7c,*param_2,param_2[1])" ( (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (if_statement "if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (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_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }" { (expression_statement "local_bc = piVar1[2];" (assignment_expression "local_bc = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = piVar1[3];" (assignment_expression "local_b8 = piVar1[3]" identifier = (subscript_expression "piVar1[3]" identifier [ number_literal ])) ;) (expression_statement "local_b4 = piVar1[4];" (assignment_expression "local_b4 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (expression_statement "local_b0 = piVar1[5];" (assignment_expression "local_b0 = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = &local_bc;" (assignment_expression "local_c4 = &local_bc" identifier = (pointer_expression "&local_bc" & identifier)) ;) }) (else_clause "else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }" else (compound_statement "{\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }" { (expression_statement "local_bc = piVar1[2];" (assignment_expression "local_bc = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = (int *)*piVar1;" (assignment_expression "local_c4 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }))) (expression_statement "iVar3 = piVar1[1];" (assignment_expression "iVar3 = 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_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }" if (parenthesized_expression "(local_7c != local_74)" ( (binary_expression "local_7c != local_74" identifier != identifier) )) (compound_statement "{\n    FUN_001e6db0(local_7c);\n  }" { (expression_statement "FUN_001e6db0(local_7c);" (call_expression "FUN_001e6db0(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);" (assignment_expression "iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c)" identifier = (call_expression "__xstat64(3,(char *)local_c4,(stat64 *)&local_7c)" identifier (argument_list "(3,(char *)local_c4,(stat64 *)&local_7c)" ( number_literal , (cast_expression "(char *)local_c4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) )))) ;) (if_statement "if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }" { (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" * identifier) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (if_statement "if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" if (parenthesized_expression "(local_c4 == &local_bc)" ( (binary_expression "local_c4 == &local_bc" identifier == (pointer_expression "&local_bc" & identifier)) )) (compound_statement "{\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }" { (expression_statement "param_1[2] = local_bc;" (assignment_expression "param_1[2] = local_bc" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_b8;" (assignment_expression "param_1[3] = local_b8" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_b4;" (assignment_expression "param_1[4] = local_b4" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_b0;" (assignment_expression "param_1[5] = local_b0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" else (compound_statement "{\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" { (expression_statement "*param_1 = local_c4;" (assignment_expression "*param_1 = local_c4" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[2] = local_bc;" (assignment_expression "param_1[2] = local_bc" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "piVar1 = (int *)*param_3;" (assignment_expression "piVar1 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }" if (parenthesized_expression "(piVar1 != (int *)param_3[1])" ( (binary_expression "piVar1 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }" { (do_statement "do {\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);" do (compound_statement "{\n      local_94 = local_8c;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    }" { (expression_statement "local_94 = local_8c;" (assignment_expression "local_94 = local_8c" identifier = identifier) ;) comment (expression_statement "FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);" (call_expression "FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0)" identifier (argument_list "(&local_94,*piVar1,piVar1[1] + *piVar1,0)" ( (pointer_expression "&local_94" & identifier) , (pointer_expression "*piVar1" * identifier) , (binary_expression "piVar1[1] + *piVar1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + (pointer_expression "*piVar1" * identifier)) , number_literal ))) ;) comment (expression_statement "FUN_001ef630(&local_94,local_90,0,1,0x2f);" (call_expression "FUN_001ef630(&local_94,local_90,0,1,0x2f)" identifier (argument_list "(&local_94,local_90,0,1,0x2f)" ( (pointer_expression "&local_94" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);" (assignment_expression "piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1])" identifier = (cast_expression "(int *)FUN_001f05c0(&local_94,*param_2,param_2[1])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0(&local_94,*param_2,param_2[1])" identifier (argument_list "(&local_94,*param_2,param_2[1])" ( (pointer_expression "&local_94" & identifier) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_ac = (int *)*piVar4;" (assignment_expression "local_ac = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }" if (parenthesized_expression "(local_ac == piVar4 + 2)" ( (binary_expression "local_ac == piVar4 + 2" identifier == (binary_expression "piVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }" { (expression_statement "local_a4 = piVar4[2];" (assignment_expression "local_a4 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = piVar4[3];" (assignment_expression "local_a0 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_9c = piVar4[4];" (assignment_expression "local_9c = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "local_98 = piVar4[5];" (assignment_expression "local_98 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "local_ac = &local_a4;" (assignment_expression "local_ac = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) }) (else_clause "else {\n        local_a4 = piVar4[2];\n      }" else (compound_statement "{\n        local_a4 = piVar4[2];\n      }" { (expression_statement "local_a4 = piVar4[2];" (assignment_expression "local_a4 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_a8 = piVar4[1];" (assignment_expression "local_a8 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)(piVar4 + 2);" (assignment_expression "*piVar4 = (int)(piVar4 + 2)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }" if (parenthesized_expression "(local_94 != local_8c)" ( (binary_expression "local_94 != local_8c" identifier != identifier) )) (compound_statement "{\n        FUN_001e6db0(local_94);\n      }" { (expression_statement "FUN_001e6db0(local_94);" (call_expression "FUN_001e6db0(local_94)" identifier (argument_list "(local_94)" ( identifier ))) ;) })) (expression_statement "iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);" (assignment_expression "iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c)" identifier = (call_expression "__xstat64(3,(char *)local_ac,(stat64 *)&local_7c)" identifier (argument_list "(3,(char *)local_ac,(stat64 *)&local_7c)" ( number_literal , (cast_expression "(char *)local_ac" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) )))) ;) (if_statement "if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }" { (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" * identifier) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (if_statement "if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" if (parenthesized_expression "(local_ac == &local_a4)" ( (binary_expression "local_ac == &local_a4" identifier == (pointer_expression "&local_a4" & identifier)) )) (compound_statement "{\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }" { (expression_statement "param_1[2] = local_a4;" (assignment_expression "param_1[2] = local_a4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_a0;" (assignment_expression "param_1[3] = local_a0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_9c;" (assignment_expression "param_1[4] = local_9c" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_98;" (assignment_expression "param_1[5] = local_98" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" else (compound_statement "{\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" { (expression_statement "*param_1 = local_ac;" (assignment_expression "*param_1 = local_ac" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[2] = local_a4;" (assignment_expression "param_1[2] = local_a4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = local_a8;" (assignment_expression "param_1[1] = local_a8" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_001a2277;" goto statement_identifier ;) })) (if_statement "if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }" if (parenthesized_expression "(local_ac != &local_a4)" ( (binary_expression "local_ac != &local_a4" identifier != (pointer_expression "&local_a4" & identifier)) )) (compound_statement "{\n        FUN_001e6db0(local_ac);\n      }" { (expression_statement "FUN_001e6db0(local_ac);" (call_expression "FUN_001e6db0(local_ac)" identifier (argument_list "(local_ac)" ( identifier ))) ;) })) (expression_statement "piVar1 = piVar1 + 7;" (assignment_expression "piVar1 = piVar1 + 7" identifier = (binary_expression "piVar1 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar1)" ( (binary_expression "(int *)param_3[1] != piVar1" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" * identifier) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) comment (expression_statement "FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);" (call_expression "FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0)" identifier (argument_list "(param_1,*param_2,param_2[1] + *param_2,0)" ( identifier , (pointer_expression "*param_2" * identifier) , (binary_expression "param_2[1] + *param_2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (pointer_expression "*param_2" * identifier)) , number_literal ))) ;) (labeled_statement "LAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }" statement_identifier : (if_statement "if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }" if (parenthesized_expression "(local_c4 != &local_bc)" ( (binary_expression "local_c4 != &local_bc" identifier != (pointer_expression "&local_bc" & identifier)) )) (compound_statement "{\n    FUN_001e6db0(local_c4);\n  }" { (expression_statement "FUN_001e6db0(local_c4);" (call_expression "FUN_001e6db0(local_c4)" identifier (argument_list "(local_c4)" ( identifier ))) ;) }))) (return_statement "return param_1;" 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  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  pointer pcVar3;\n  int *piVar4;\n  int iVar5;\n  pointer pSVar6;\n  string extra_name;\n  string full_name;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_94;\n  stat buf;\n  \n  __x86_get_pc_thunk_di();\n  pcVar3 = (extra_search_dir->_M_dataplus)._M_p;\n  buf.st_dev._0_4_ = &buf.__pad1;\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&buf,\n                      pcVar3,pcVar3 + extra_search_dir->_M_string_length,0);\n                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */\n  std::string::_M_replace_aux((string *)&buf,buf.st_dev._4_4_,0,1,'/');\n                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */\n  piVar4 = (int *)std::string::_M_append\n                            ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);\n  paVar1 = &extra_name.field_2;\n  if ((int *)*piVar4 == piVar4 + 2) {\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name.field_2._4_4_ = piVar4[3];\n    extra_name.field_2._8_4_ = piVar4[4];\n    extra_name.field_2._12_4_ = piVar4[5];\n    extra_name._M_dataplus._M_p = (pointer)paVar1;\n  }\n  else {\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar4;\n  }\n  extra_name._M_string_length = piVar4[1];\n  *(undefined1 *)(piVar4 + 2) = 0;\n  *piVar4 = (int)(piVar4 + 2);\n  piVar4[1] = 0;\n  if ((ushort *)buf.st_dev != &buf.__pad1) {\n    operator_delete((ushort *)buf.st_dev);\n  }\n  iVar5 = __xstat64(3,extra_name._M_dataplus._M_p,(stat64 *)&buf);\n  if (iVar5 == 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 == paVar1) {\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    }\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    }\n    __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\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    paVar2 = &full_name.field_2;\n    do {\n      pcVar3 = (pSVar6->name_)._M_dataplus._M_p;\n      local_94._M_dataplus._M_p = (pointer)&local_94.field_2;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)std::string::_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );\n      full_name._M_dataplus._M_p = (pointer)*piVar4;\n      if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }\n      full_name._M_string_length = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2) {\n        operator_delete(local_94._M_dataplus._M_p);\n      }\n      iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);\n      if (iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\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 != paVar2) {\n        operator_delete(full_name._M_dataplus._M_p);\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  pcVar3 = (name->_M_dataplus)._M_p;\n                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */\n  std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0);\nLAB_001a2277:\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 != paVar1) {\n    operator_delete(extra_name._M_dataplus._M_p);\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  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar1;" 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{\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" : (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) ))) { (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_>_9\n  *paVar1;" (binary_expression "allocator<char>_>_9\n  *paVar1" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar1" identifier * identifier)) ;)) (ERROR "anon_union_16_2_edb7204a_for_basic_string<char," (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;" 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  *paVar2;" (binary_expression "allocator<char>_>_9\n  *paVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar2" identifier * identifier)) ;)) (declaration "pointer pcVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "pointer pSVar6;" type_identifier identifier ;) (declaration "string extra_name;" type_identifier identifier ;) (declaration "string full_name;" type_identifier identifier ;) (ERROR "basic_string<char," (binary_expression "basic_string<char" identifier < identifier) ,) (labeled_statement "_std::char_traits<char>,_std::allocator<char>_> local_94;" 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>_> local_94;" (binary_expression "allocator<char>_> local_94" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;)) (declaration "stat buf;" type_identifier identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar3 = (extra_search_dir->_M_dataplus)._M_p;" (assignment_expression "pcVar3 = (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._0_4_ = &buf.__pad1;" (assignment_expression "buf.st_dev._0_4_ = &buf.__pad1" (field_expression "buf.st_dev._0_4_" (field_expression "buf.st_dev" identifier . field_identifier) . field_identifier) = (pointer_expression "&buf.__pad1" & (field_expression "buf.__pad1" identifier . field_identifier))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std::allocator<char>_> *)&buf,\n                      pcVar3,pcVar3 + extra_search_dir->_M_string_length,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>((basic_string<char,_std::char_traits<char>,_std:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > : : (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > ( ( (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) :) : (expression_statement "allocator<char>_> *)&buf,\n                      pcVar3,pcVar3 + extra_search_dir->_M_string_length,0);" (comma_expression "allocator<char>_> *)&buf,\n                      pcVar3,pcVar3 + extra_search_dir->_M_string_length,0" (binary_expression "allocator<char>_> *)&buf" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (pointer_expression "*)&buf" * (ERROR ")" )) (pointer_expression "&buf" & identifier))) , (comma_expression "pcVar3,pcVar3 + extra_search_dir->_M_string_length,0" identifier , (comma_expression "pcVar3 + extra_search_dir->_M_string_length,0" (binary_expression "pcVar3 + extra_search_dir->_M_string_length" identifier + (field_expression "extra_search_dir->_M_string_length" identifier -> field_identifier)) , number_literal))) (ERROR ")" )) ;)) comment (labeled_statement "std::string::_M_replace_aux((string *)&buf,buf.st_dev._4_4_,0,1,'/');" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace_aux((string *)&buf,buf.st_dev._4_4_,0,1,'/');" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace_aux((string *)&buf,buf.st_dev._4_4_,0,1,'/');" (call_expression "_M_replace_aux((string *)&buf,buf.st_dev._4_4_,0,1,'/')" identifier (argument_list "((string *)&buf,buf.st_dev._4_4_,0,1,'/')" ( (cast_expression "(string *)&buf" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&buf" & identifier)) , (field_expression "buf.st_dev._4_4_" (field_expression "buf.st_dev" identifier . field_identifier) . field_identifier) , number_literal , number_literal , (char_literal "'/'" ' character ') ))) ;))) comment (ERROR "piVar4 = (int *)std::" (assignment_expression "piVar4 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append\n                            ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append\n                            ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);" (call_expression "_M_append\n                            ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length)" identifier (argument_list "((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length)" ( (cast_expression "(string *)&buf" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (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 "paVar1 = &extra_name.field_2;" (assignment_expression "paVar1 = &extra_name.field_2" identifier = (pointer_expression "&extra_name.field_2" & (field_expression "extra_name.field_2" identifier . field_identifier))) ;) (if_statement "if ((int *)*piVar4 == piVar4 + 2) {\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name.field_2._4_4_ = piVar4[3];\n    extra_name.field_2._8_4_ = piVar4[4];\n    extra_name.field_2._12_4_ = piVar4[5];\n    extra_name._M_dataplus._M_p = (pointer)paVar1;\n  }\n  else {\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar4;\n  }" if (parenthesized_expression "((int *)*piVar4 == piVar4 + 2)" ( (binary_expression "(int *)*piVar4 == piVar4 + 2" (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier)) == (binary_expression "piVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name.field_2._4_4_ = piVar4[3];\n    extra_name.field_2._8_4_ = piVar4[4];\n    extra_name.field_2._12_4_ = piVar4[5];\n    extra_name._M_dataplus._M_p = (pointer)paVar1;\n  }" { (expression_statement "extra_name.field_2._M_allocated_capacity = piVar4[2];" (assignment_expression "extra_name.field_2._M_allocated_capacity = piVar4[2]" (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._4_4_ = piVar4[3];" (assignment_expression "extra_name.field_2._4_4_ = piVar4[3]" (field_expression "extra_name.field_2._4_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._8_4_ = piVar4[4];" (assignment_expression "extra_name.field_2._8_4_ = piVar4[4]" (field_expression "extra_name.field_2._8_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._12_4_ = piVar4[5];" (assignment_expression "extra_name.field_2._12_4_ = piVar4[5]" (field_expression "extra_name.field_2._12_4_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "extra_name._M_dataplus._M_p = (pointer)paVar1;" (assignment_expression "extra_name._M_dataplus._M_p = (pointer)paVar1" (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar1" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar4;\n  }" else (compound_statement "{\n    extra_name.field_2._M_allocated_capacity = piVar4[2];\n    extra_name._M_dataplus._M_p = (pointer)*piVar4;\n  }" { (expression_statement "extra_name.field_2._M_allocated_capacity = piVar4[2];" (assignment_expression "extra_name.field_2._M_allocated_capacity = piVar4[2]" (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "extra_name._M_dataplus._M_p = (pointer)*piVar4;" (assignment_expression "extra_name._M_dataplus._M_p = (pointer)*piVar4" (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)*piVar4" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) }))) (expression_statement "extra_name._M_string_length = piVar4[1];" (assignment_expression "extra_name._M_string_length = piVar4[1]" (field_expression "extra_name._M_string_length" identifier . field_identifier) = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)(piVar4 + 2);" (assignment_expression "*piVar4 = (int)(piVar4 + 2)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((ushort *)buf.st_dev != &buf.__pad1) {\n    operator_delete((ushort *)buf.st_dev);\n  }" if (parenthesized_expression "((ushort *)buf.st_dev != &buf.__pad1)" ( (binary_expression "(ushort *)buf.st_dev != &buf.__pad1" (cast_expression "(ushort *)buf.st_dev" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "buf.st_dev" identifier . field_identifier)) != (pointer_expression "&buf.__pad1" & (field_expression "buf.__pad1" identifier . field_identifier))) )) (compound_statement "{\n    operator_delete((ushort *)buf.st_dev);\n  }" { (expression_statement "operator_delete((ushort *)buf.st_dev);" (call_expression "operator_delete((ushort *)buf.st_dev)" identifier (argument_list "((ushort *)buf.st_dev)" ( (cast_expression "(ushort *)buf.st_dev" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "buf.st_dev" identifier . field_identifier)) ))) ;) })) (expression_statement "iVar5 = __xstat64(3,extra_name._M_dataplus._M_p,(stat64 *)&buf);" (assignment_expression "iVar5 = __xstat64(3,extra_name._M_dataplus._M_p,(stat64 *)&buf)" identifier = (call_expression "__xstat64(3,extra_name._M_dataplus._M_p,(stat64 *)&buf)" identifier (argument_list "(3,extra_name._M_dataplus._M_p,(stat64 *)&buf)" ( number_literal , (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) , (cast_expression "(stat64 *)&buf" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&buf" & identifier)) )))) ;) (if_statement "if (iVar5 == 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 == paVar1) {\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    }\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    }\n    __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\n    return __return_storage_ptr__;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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 == paVar1) {\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    }\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    }\n    __return_storage_ptr__->_M_string_length = extra_name._M_string_length;\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 == paVar1) {\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    }\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    }" 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 == paVar1)" ( (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 == paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)extra_name._M_dataplus._M_p == paVar1" (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    }" { (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)) ;) }) (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    }" 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    }" { (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    paVar2 = &full_name.field_2;\n    do {\n      pcVar3 = (pSVar6->name_)._M_dataplus._M_p;\n      local_94._M_dataplus._M_p = (pointer)&local_94.field_2;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)std::string::_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );\n      full_name._M_dataplus._M_p = (pointer)*piVar4;\n      if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }\n      full_name._M_string_length = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2) {\n        operator_delete(local_94._M_dataplus._M_p);\n      }\n      iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);\n      if (iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\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 != paVar2) {\n        operator_delete(full_name._M_dataplus._M_p);\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    paVar2 = &full_name.field_2;\n    do {\n      pcVar3 = (pSVar6->name_)._M_dataplus._M_p;\n      local_94._M_dataplus._M_p = (pointer)&local_94.field_2;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)std::string::_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );\n      full_name._M_dataplus._M_p = (pointer)*piVar4;\n      if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }\n      full_name._M_string_length = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2) {\n        operator_delete(local_94._M_dataplus._M_p);\n      }\n      iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);\n      if (iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\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 != paVar2) {\n        operator_delete(full_name._M_dataplus._M_p);\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 "paVar2 = &full_name.field_2;" (assignment_expression "paVar2 = &full_name.field_2" identifier = (pointer_expression "&full_name.field_2" & (field_expression "full_name.field_2" identifier . field_identifier))) ;) (do_statement "do {\n      pcVar3 = (pSVar6->name_)._M_dataplus._M_p;\n      local_94._M_dataplus._M_p = (pointer)&local_94.field_2;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)std::string::_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );\n      full_name._M_dataplus._M_p = (pointer)*piVar4;\n      if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }\n      full_name._M_string_length = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2) {\n        operator_delete(local_94._M_dataplus._M_p);\n      }\n      iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);\n      if (iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\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 != paVar2) {\n        operator_delete(full_name._M_dataplus._M_p);\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      pcVar3 = (pSVar6->name_)._M_dataplus._M_p;\n      local_94._M_dataplus._M_p = (pointer)&local_94.field_2;\n                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */\n      std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);\n                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */\n      std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');\n                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */\n      piVar4 = (int *)std::string::_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );\n      full_name._M_dataplus._M_p = (pointer)*piVar4;\n      if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }\n      full_name._M_string_length = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2) {\n        operator_delete(local_94._M_dataplus._M_p);\n      }\n      iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);\n      if (iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\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 != paVar2) {\n        operator_delete(full_name._M_dataplus._M_p);\n      }\n      pSVar6 = pSVar6 + 1;\n    }" { (expression_statement "pcVar3 = (pSVar6->name_)._M_dataplus._M_p;" (assignment_expression "pcVar3 = (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)) ;) (expression_statement "local_94._M_dataplus._M_p = (pointer)&local_94.field_2;" (assignment_expression "local_94._M_dataplus._M_p = (pointer)&local_94.field_2" (field_expression "local_94._M_dataplus._M_p" (field_expression "local_94._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_94.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_94.field_2" identifier . field_identifier))) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n      _M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0);" (binary_expression "_M_construct<char*>(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0)" ( (comma_expression "&local_94,pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0" (pointer_expression "&local_94" & identifier) , (comma_expression "pcVar3,pcVar3 + (pSVar6->name_)._M_string_length,0" identifier , (comma_expression "pcVar3 + (pSVar6->name_)._M_string_length,0" (binary_expression "pcVar3 + (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 (labeled_statement "std::string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/');" (call_expression "_M_replace_aux((string *)&local_94,local_94._M_string_length,0,1,'/')" identifier (argument_list "((string *)&local_94,local_94._M_string_length,0,1,'/')" ( (cast_expression "(string *)&local_94" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_94" & identifier)) , (field_expression "local_94._M_string_length" identifier . field_identifier) , number_literal , number_literal , (char_literal "'/'" ' character ') ))) ;))) comment (ERROR "piVar4 = (int *)std::" (assignment_expression "piVar4 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );" statement_identifier : (ERROR ":" :) (expression_statement "_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                );" (call_expression "_M_append\n                                ((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                )" identifier (argument_list "((string *)&local_94,(name->_M_dataplus)._M_p,name->_M_string_length\n                                )" ( (cast_expression "(string *)&local_94" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_94" & 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)*piVar4;" (assignment_expression "full_name._M_dataplus._M_p = (pointer)*piVar4" (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)*piVar4" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) (if_statement "if ((int *)full_name._M_dataplus._M_p == piVar4 + 2) {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }\n      else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }" if (parenthesized_expression "((int *)full_name._M_dataplus._M_p == piVar4 + 2)" ( (binary_expression "(int *)full_name._M_dataplus._M_p == piVar4 + 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 "piVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n        full_name.field_2._4_4_ = piVar4[3];\n        full_name.field_2._8_4_ = piVar4[4];\n        full_name.field_2._12_4_ = piVar4[5];\n        full_name._M_dataplus._M_p = (pointer)paVar2;\n      }" { (expression_statement "full_name.field_2._M_allocated_capacity = piVar4[2];" (assignment_expression "full_name.field_2._M_allocated_capacity = piVar4[2]" (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._4_4_ = piVar4[3];" (assignment_expression "full_name.field_2._4_4_ = piVar4[3]" (field_expression "full_name.field_2._4_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._8_4_ = piVar4[4];" (assignment_expression "full_name.field_2._8_4_ = piVar4[4]" (field_expression "full_name.field_2._8_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._12_4_ = piVar4[5];" (assignment_expression "full_name.field_2._12_4_ = piVar4[5]" (field_expression "full_name.field_2._12_4_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "full_name._M_dataplus._M_p = (pointer)paVar2;" (assignment_expression "full_name._M_dataplus._M_p = (pointer)paVar2" (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }" else (compound_statement "{\n        full_name.field_2._M_allocated_capacity = piVar4[2];\n      }" { (expression_statement "full_name.field_2._M_allocated_capacity = piVar4[2];" (assignment_expression "full_name.field_2._M_allocated_capacity = piVar4[2]" (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "full_name._M_string_length = piVar4[1];" (assignment_expression "full_name._M_string_length = piVar4[1]" (field_expression "full_name._M_string_length" identifier . field_identifier) = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)(piVar4 + 2);" (assignment_expression "*piVar4 = (int)(piVar4 + 2)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2) {\n        operator_delete(local_94._M_dataplus._M_p);\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n           *)local_94._M_dataplus._M_p != &local_94.field_2" (binary_expression "allocator<char>_>_9\n           *)local_94._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)local_94._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_94._M_dataplus._M_p" (field_expression "local_94._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&local_94.field_2" & (field_expression "local_94.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n        operator_delete(local_94._M_dataplus._M_p);\n      }" { (expression_statement "operator_delete(local_94._M_dataplus._M_p);" (call_expression "operator_delete(local_94._M_dataplus._M_p)" identifier (argument_list "(local_94._M_dataplus._M_p)" ( (field_expression "local_94._M_dataplus._M_p" (field_expression "local_94._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (expression_statement "iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf);" (assignment_expression "iVar5 = __xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf)" identifier = (call_expression "__xstat64(3,full_name._M_dataplus._M_p,(stat64 *)&buf)" identifier (argument_list "(3,full_name._M_dataplus._M_p,(stat64 *)&buf)" ( number_literal , (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) , (cast_expression "(stat64 *)&buf" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&buf" & identifier)) )))) ;) (if_statement "if (iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 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 == paVar2) {\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        }\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        }\n        __return_storage_ptr__->_M_string_length = full_name._M_string_length;\n        goto LAB_001a2277;\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 == paVar2) {\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        }\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        }" 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 == paVar2)" ( (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 == paVar2)" ( (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 == paVar2" (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        }" { (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)) ;) }) (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        }" 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        }" { (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_001a2277;" 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 != paVar2) {\n        operator_delete(full_name._M_dataplus._M_p);\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)full_name._M_dataplus._M_p != paVar2)" ( (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 != paVar2)" ( (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 != paVar2" (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        operator_delete(full_name._M_dataplus._M_p);\n      }" { (expression_statement "operator_delete(full_name._M_dataplus._M_p);" (call_expression "operator_delete(full_name._M_dataplus._M_p)" identifier (argument_list "(full_name._M_dataplus._M_p)" ( (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (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 "pcVar3 = (name->_M_dataplus)._M_p;" (assignment_expression "pcVar3 = (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 (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n  _M_construct<char*>(__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char*>(__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0);" (binary_expression "_M_construct<char*>(__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0)" ( (comma_expression "__return_storage_ptr__,pcVar3,pcVar3 + name->_M_string_length,0" identifier , (comma_expression "pcVar3,pcVar3 + name->_M_string_length,0" identifier , (comma_expression "pcVar3 + name->_M_string_length,0" (binary_expression "pcVar3 + name->_M_string_length" identifier + (field_expression "name->_M_string_length" identifier -> field_identifier)) , number_literal))) ))) ;)) (labeled_statement "LAB_001a2277:\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 != paVar1) {\n    operator_delete(extra_name._M_dataplus._M_p);\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 != paVar1) {\n    operator_delete(extra_name._M_dataplus._M_p);\n  }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar1)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar1)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n       *)extra_name._M_dataplus._M_p != paVar1" (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    operator_delete(extra_name._M_dataplus._M_p);\n  }" { (expression_statement "operator_delete(extra_name._M_dataplus._M_p);" (call_expression "operator_delete(extra_name._M_dataplus._M_p)" identifier (argument_list "(extra_name._M_dataplus._M_p)" ( (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) }))) (return_statement "return __return_storage_ptr__;" return identifier ;) (ERROR "}" }))
(translation_unit "undefined4 * FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    \n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    \n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    \n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}\n\n" (function_definition "undefined4 * FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    \n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    \n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    \n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}" type_identifier (pointer_declarator "* FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" * (function_declarator "FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    \n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    \n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    \n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "int local_b8;" primitive_type identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "int *local_ac;" primitive_type (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "int local_98;" primitive_type identifier ;) (declaration "undefined1 *local_94;" type_identifier (pointer_declarator "*local_94" * identifier) ;) (declaration "undefined4 local_90;" type_identifier identifier ;) (declaration "undefined1 local_8c [16];" type_identifier (array_declarator "local_8c [16]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 local_78;" type_identifier identifier ;) (declaration "undefined1 local_74 [100];" type_identifier (array_declarator "local_74 [100]" identifier [ number_literal ]) ;) (expression_statement "FUN_000559ee();" (call_expression "FUN_000559ee()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_7c = local_74;" (assignment_expression "local_7c = local_74" identifier = identifier) ;) (expression_statement "FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);" (call_expression "FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0)" identifier (argument_list "((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0)" ( (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) , (pointer_expression "*param_4" * identifier) , (binary_expression "param_4[1] + *param_4" (subscript_expression "param_4[1]" identifier [ number_literal ]) + (pointer_expression "*param_4" * identifier)) , number_literal ))) ;) (expression_statement "FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);" (call_expression "FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f)" identifier (argument_list "((stat64 *)&local_7c,local_78,0,1,0x2f)" ( (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);" (assignment_expression "piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" identifier = (cast_expression "(int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" identifier (argument_list "((stat64 *)&local_7c,*param_2,param_2[1])" ( (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (if_statement "if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (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_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }" { (expression_statement "local_bc = piVar1[2];" (assignment_expression "local_bc = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_b8 = piVar1[3];" (assignment_expression "local_b8 = piVar1[3]" identifier = (subscript_expression "piVar1[3]" identifier [ number_literal ])) ;) (expression_statement "local_b4 = piVar1[4];" (assignment_expression "local_b4 = piVar1[4]" identifier = (subscript_expression "piVar1[4]" identifier [ number_literal ])) ;) (expression_statement "local_b0 = piVar1[5];" (assignment_expression "local_b0 = piVar1[5]" identifier = (subscript_expression "piVar1[5]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = &local_bc;" (assignment_expression "local_c4 = &local_bc" identifier = (pointer_expression "&local_bc" & identifier)) ;) }) (else_clause "else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }" else (compound_statement "{\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }" { (expression_statement "local_bc = piVar1[2];" (assignment_expression "local_bc = piVar1[2]" identifier = (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = (int *)*piVar1;" (assignment_expression "local_c4 = (int *)*piVar1" identifier = (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) ;) }))) (expression_statement "iVar3 = piVar1[1];" (assignment_expression "iVar3 = 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_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }" if (parenthesized_expression "(local_7c != local_74)" ( (binary_expression "local_7c != local_74" identifier != identifier) )) (compound_statement "{\n    FUN_001e6db0(local_7c);\n  }" { (expression_statement "FUN_001e6db0(local_7c);" (call_expression "FUN_001e6db0(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) })) (expression_statement "iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);" (assignment_expression "iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c)" identifier = (call_expression "__xstat64(3,(char *)local_c4,(stat64 *)&local_7c)" identifier (argument_list "(3,(char *)local_c4,(stat64 *)&local_7c)" ( number_literal , (cast_expression "(char *)local_c4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) )))) ;) (if_statement "if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }" { (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" * identifier) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (if_statement "if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" if (parenthesized_expression "(local_c4 == &local_bc)" ( (binary_expression "local_c4 == &local_bc" identifier == (pointer_expression "&local_bc" & identifier)) )) (compound_statement "{\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }" { (expression_statement "param_1[2] = local_bc;" (assignment_expression "param_1[2] = local_bc" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_b8;" (assignment_expression "param_1[3] = local_b8" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_b4;" (assignment_expression "param_1[4] = local_b4" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_b0;" (assignment_expression "param_1[5] = local_b0" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" else (compound_statement "{\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" { (expression_statement "*param_1 = local_c4;" (assignment_expression "*param_1 = local_c4" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[2] = local_bc;" (assignment_expression "param_1[2] = local_bc" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })) (expression_statement "piVar1 = (int *)*param_3;" (assignment_expression "piVar1 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }" if (parenthesized_expression "(piVar1 != (int *)param_3[1])" ( (binary_expression "piVar1 != (int *)param_3[1]" identifier != (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }" { (do_statement "do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);" do (compound_statement "{\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    }" { (expression_statement "local_94 = local_8c;" (assignment_expression "local_94 = local_8c" identifier = identifier) ;) (expression_statement "FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);" (call_expression "FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0)" identifier (argument_list "(&local_94,*piVar1,piVar1[1] + *piVar1,0)" ( (pointer_expression "&local_94" & identifier) , (pointer_expression "*piVar1" * identifier) , (binary_expression "piVar1[1] + *piVar1" (subscript_expression "piVar1[1]" identifier [ number_literal ]) + (pointer_expression "*piVar1" * identifier)) , number_literal ))) ;) (expression_statement "FUN_001ef630(&local_94,local_90,0,1,0x2f);" (call_expression "FUN_001ef630(&local_94,local_90,0,1,0x2f)" identifier (argument_list "(&local_94,local_90,0,1,0x2f)" ( (pointer_expression "&local_94" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);" (assignment_expression "piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1])" identifier = (cast_expression "(int *)FUN_001f05c0(&local_94,*param_2,param_2[1])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001f05c0(&local_94,*param_2,param_2[1])" identifier (argument_list "(&local_94,*param_2,param_2[1])" ( (pointer_expression "&local_94" & identifier) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_ac = (int *)*piVar4;" (assignment_expression "local_ac = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }" if (parenthesized_expression "(local_ac == piVar4 + 2)" ( (binary_expression "local_ac == piVar4 + 2" identifier == (binary_expression "piVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }" { (expression_statement "local_a4 = piVar4[2];" (assignment_expression "local_a4 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "local_a0 = piVar4[3];" (assignment_expression "local_a0 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_9c = piVar4[4];" (assignment_expression "local_9c = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "local_98 = piVar4[5];" (assignment_expression "local_98 = piVar4[5]" identifier = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "local_ac = &local_a4;" (assignment_expression "local_ac = &local_a4" identifier = (pointer_expression "&local_a4" & identifier)) ;) }) (else_clause "else {\n        local_a4 = piVar4[2];\n      }" else (compound_statement "{\n        local_a4 = piVar4[2];\n      }" { (expression_statement "local_a4 = piVar4[2];" (assignment_expression "local_a4 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_a8 = piVar4[1];" (assignment_expression "local_a8 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" * (cast_expression "(undefined1 *)(piVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*piVar4 = (int)(piVar4 + 2);" (assignment_expression "*piVar4 = (int)(piVar4 + 2)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(piVar4 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar4 + 2)" ( (binary_expression "piVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }" if (parenthesized_expression "(local_94 != local_8c)" ( (binary_expression "local_94 != local_8c" identifier != identifier) )) (compound_statement "{\n        FUN_001e6db0(local_94);\n      }" { (expression_statement "FUN_001e6db0(local_94);" (call_expression "FUN_001e6db0(local_94)" identifier (argument_list "(local_94)" ( identifier ))) ;) })) (expression_statement "iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);" (assignment_expression "iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c)" identifier = (call_expression "__xstat64(3,(char *)local_ac,(stat64 *)&local_7c)" identifier (argument_list "(3,(char *)local_ac,(stat64 *)&local_7c)" ( number_literal , (cast_expression "(char *)local_ac" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(stat64 *)&local_7c" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c" & identifier)) )))) ;) (if_statement "if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }" { (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" * identifier) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (if_statement "if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" if (parenthesized_expression "(local_ac == &local_a4)" ( (binary_expression "local_ac == &local_a4" identifier == (pointer_expression "&local_a4" & identifier)) )) (compound_statement "{\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }" { (expression_statement "param_1[2] = local_a4;" (assignment_expression "param_1[2] = local_a4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_a0;" (assignment_expression "param_1[3] = local_a0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_9c;" (assignment_expression "param_1[4] = local_9c" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_98;" (assignment_expression "param_1[5] = local_98" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" else (compound_statement "{\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" { (expression_statement "*param_1 = local_ac;" (assignment_expression "*param_1 = local_ac" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[2] = local_a4;" (assignment_expression "param_1[2] = local_a4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = local_a8;" (assignment_expression "param_1[1] = local_a8" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_001a2277;" goto statement_identifier ;) })) (if_statement "if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }" if (parenthesized_expression "(local_ac != &local_a4)" ( (binary_expression "local_ac != &local_a4" identifier != (pointer_expression "&local_a4" & identifier)) )) (compound_statement "{\n        FUN_001e6db0(local_ac);\n      }" { (expression_statement "FUN_001e6db0(local_ac);" (call_expression "FUN_001e6db0(local_ac)" identifier (argument_list "(local_ac)" ( identifier ))) ;) })) (expression_statement "piVar1 = piVar1 + 7;" (assignment_expression "piVar1 = piVar1 + 7" identifier = (binary_expression "piVar1 + 7" identifier + number_literal)) ;) }) while (parenthesized_expression "((int *)param_3[1] != piVar1)" ( (binary_expression "(int *)param_3[1] != piVar1" (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" * identifier) = (binary_expression "param_1 + 2" identifier + number_literal)) ;) (expression_statement "FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);" (call_expression "FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0)" identifier (argument_list "(param_1,*param_2,param_2[1] + *param_2,0)" ( identifier , (pointer_expression "*param_2" * identifier) , (binary_expression "param_2[1] + *param_2" (subscript_expression "param_2[1]" identifier [ number_literal ]) + (pointer_expression "*param_2" * identifier)) , number_literal ))) ;) (labeled_statement "LAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }" statement_identifier : (if_statement "if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }" if (parenthesized_expression "(local_c4 != &local_bc)" ( (binary_expression "local_c4 != &local_bc" identifier != (pointer_expression "&local_bc" & identifier)) )) (compound_statement "{\n    FUN_001e6db0(local_c4);\n  }" { (expression_statement "FUN_001e6db0(local_c4);" (call_expression "FUN_001e6db0(local_c4)" identifier (argument_list "(local_c4)" ( identifier ))) ;) }))) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , IDENT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) ))))) ;) (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 = (pointer_expression & 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 IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) , LIT ))) ;) (expression_statement (call_expression 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 IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_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 IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_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 IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "undefined4 * FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    \n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    \n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    \n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" (* "*") (function_declarator "FUN_001a2000(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" (identifier "FUN_001a2000") (parameter_list "(undefined4 *param_1,int *param_2,int *param_3,int *param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *local_c4;\n  int local_bc;\n  int local_b8;\n  int local_b4;\n  int local_b0;\n  int *local_ac;\n  int local_a8;\n  int local_a4;\n  int local_a0;\n  int local_9c;\n  int local_98;\n  undefined1 *local_94;\n  undefined4 local_90;\n  undefined1 local_8c [16];\n  undefined1 *local_7c;\n  undefined4 local_78;\n  undefined1 local_74 [100];\n  \n  FUN_000559ee();\n  local_7c = local_74;\n  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);\n                    \n  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);\n                    \n  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);\n  if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }\n  iVar3 = piVar1[1];\n  *(undefined1 *)(piVar1 + 2) = 0;\n  *piVar1 = (int)(piVar1 + 2);\n  piVar1[1] = 0;\n  if (local_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }\n  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);\n  if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }\n  piVar1 = (int *)*param_3;\n  if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }\n  *param_1 = param_1 + 2;\n                    \n  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);\nLAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }\n  return param_1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *local_c4;" (primitive_type "int") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "int local_b8;" (primitive_type "int") (identifier "local_b8") (; ";")) (declaration "int local_b4;" (primitive_type "int") (identifier "local_b4") (; ";")) (declaration "int local_b0;" (primitive_type "int") (identifier "local_b0") (; ";")) (declaration "int *local_ac;" (primitive_type "int") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "int local_a8;" (primitive_type "int") (identifier "local_a8") (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "int local_98;" (primitive_type "int") (identifier "local_98") (; ";")) (declaration "undefined1 *local_94;" (type_identifier "undefined1") (pointer_declarator "*local_94" (* "*") (identifier "local_94")) (; ";")) (declaration "undefined4 local_90;" (type_identifier "undefined4") (identifier "local_90") (; ";")) (declaration "undefined1 local_8c [16];" (type_identifier "undefined1") (array_declarator "local_8c [16]" (identifier "local_8c") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 *local_7c;" (type_identifier "undefined1") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "undefined4 local_78;" (type_identifier "undefined4") (identifier "local_78") (; ";")) (declaration "undefined1 local_74 [100];" (type_identifier "undefined1") (array_declarator "local_74 [100]" (identifier "local_74") ([ "[") (number_literal "100") (] "]")) (; ";")) (expression_statement "FUN_000559ee();" (call_expression "FUN_000559ee()" (identifier "FUN_000559ee") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_7c = local_74;" (assignment_expression "local_7c = local_74" (identifier "local_7c") (= "=") (identifier "local_74")) (; ";")) (expression_statement "FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);" (call_expression "FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0)" (identifier "FUN_000513a0") (argument_list "((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0)" (( "(") (cast_expression "(stat64 *)&local_7c" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (, ",") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (binary_expression "param_4[1] + *param_4" (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);" (call_expression "FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f)" (identifier "FUN_001ef630") (argument_list "((stat64 *)&local_7c,local_78,0,1,0x2f)" (( "(") (cast_expression "(stat64 *)&local_7c" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (, ",") (identifier "local_78") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x2f") () ")"))) (; ";")) (expression_statement "piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);" (assignment_expression "piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1])" (identifier "FUN_001f05c0") (argument_list "((stat64 *)&local_7c,*param_2,param_2[1])" (( "(") (cast_expression "(stat64 *)&local_7c" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (if_statement "if ((int *)*piVar1 == piVar1 + 2) {\n    local_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }\n  else {\n    local_bc = piVar1[2];\n    local_c4 = (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_bc = piVar1[2];\n    local_b8 = piVar1[3];\n    local_b4 = piVar1[4];\n    local_b0 = piVar1[5];\n    local_c4 = &local_bc;\n  }" ({ "{") (expression_statement "local_bc = piVar1[2];" (assignment_expression "local_bc = piVar1[2]" (identifier "local_bc") (= "=") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_b8 = piVar1[3];" (assignment_expression "local_b8 = piVar1[3]" (identifier "local_b8") (= "=") (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_b4 = piVar1[4];" (assignment_expression "local_b4 = piVar1[4]" (identifier "local_b4") (= "=") (subscript_expression "piVar1[4]" (identifier "piVar1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_b0 = piVar1[5];" (assignment_expression "local_b0 = piVar1[5]" (identifier "local_b0") (= "=") (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_c4 = &local_bc;" (assignment_expression "local_c4 = &local_bc" (identifier "local_c4") (= "=") (pointer_expression "&local_bc" (& "&") (identifier "local_bc"))) (; ";")) (} "}")) (else_clause "else {\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }" (else "else") (compound_statement "{\n    local_bc = piVar1[2];\n    local_c4 = (int *)*piVar1;\n  }" ({ "{") (expression_statement "local_bc = piVar1[2];" (assignment_expression "local_bc = piVar1[2]" (identifier "local_bc") (= "=") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_c4 = (int *)*piVar1;" (assignment_expression "local_c4 = (int *)*piVar1" (identifier "local_c4") (= "=") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (; ";")) (} "}")))) (expression_statement "iVar3 = piVar1[1];" (assignment_expression "iVar3 = piVar1[1]" (identifier "iVar3") (= "=") (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_7c != local_74) {\n    FUN_001e6db0(local_7c);\n  }" (if "if") (parenthesized_expression "(local_7c != local_74)" (( "(") (binary_expression "local_7c != local_74" (identifier "local_7c") (!= "!=") (identifier "local_74")) () ")")) (compound_statement "{\n    FUN_001e6db0(local_7c);\n  }" ({ "{") (expression_statement "FUN_001e6db0(local_7c);" (call_expression "FUN_001e6db0(local_7c)" (identifier "FUN_001e6db0") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);" (assignment_expression "iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c)" (identifier "iVar2") (= "=") (call_expression "__xstat64(3,(char *)local_c4,(stat64 *)&local_7c)" (identifier "__xstat64") (argument_list "(3,(char *)local_c4,(stat64 *)&local_7c)" (( "(") (number_literal "3") (, ",") (cast_expression "(char *)local_c4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_c4")) (, ",") (cast_expression "(stat64 *)&local_7c" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *param_1 = param_1 + 2;\n    if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }\n    param_1[1] = iVar3;\n    return param_1;\n  }" ({ "{") (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (local_c4 == &local_bc) {\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }\n    else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" (if "if") (parenthesized_expression "(local_c4 == &local_bc)" (( "(") (binary_expression "local_c4 == &local_bc" (identifier "local_c4") (== "==") (pointer_expression "&local_bc" (& "&") (identifier "local_bc"))) () ")")) (compound_statement "{\n      param_1[2] = local_bc;\n      param_1[3] = local_b8;\n      param_1[4] = local_b4;\n      param_1[5] = local_b0;\n    }" ({ "{") (expression_statement "param_1[2] = local_bc;" (assignment_expression "param_1[2] = local_bc" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "param_1[3] = local_b8;" (assignment_expression "param_1[3] = local_b8" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "param_1[4] = local_b4;" (assignment_expression "param_1[4] = local_b4" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "param_1[5] = local_b0;" (assignment_expression "param_1[5] = local_b0" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_b0")) (; ";")) (} "}")) (else_clause "else {\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" (else "else") (compound_statement "{\n      *param_1 = local_c4;\n      param_1[2] = local_bc;\n    }" ({ "{") (expression_statement "*param_1 = local_c4;" (assignment_expression "*param_1 = local_c4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "param_1[2] = local_bc;" (assignment_expression "param_1[2] = local_bc" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_bc")) (; ";")) (} "}")))) (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)*param_3;" (assignment_expression "piVar1 = (int *)*param_3" (identifier "piVar1") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if (piVar1 != (int *)param_3[1]) {\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }" (if "if") (parenthesized_expression "(piVar1 != (int *)param_3[1])" (( "(") (binary_expression "piVar1 != (int *)param_3[1]" (identifier "piVar1") (!= "!=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n    do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);\n  }" ({ "{") (do_statement "do {\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    } while ((int *)param_3[1] != piVar1);" (do "do") (compound_statement "{\n      local_94 = local_8c;\n                    \n      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);\n                    \n      FUN_001ef630(&local_94,local_90,0,1,0x2f);\n                    \n      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);\n      local_ac = (int *)*piVar4;\n      if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }\n      local_a8 = piVar4[1];\n      *(undefined1 *)(piVar4 + 2) = 0;\n      *piVar4 = (int)(piVar4 + 2);\n      piVar4[1] = 0;\n      if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }\n      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);\n      if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }\n      if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }\n      piVar1 = piVar1 + 7;\n    }" ({ "{") (expression_statement "local_94 = local_8c;" (assignment_expression "local_94 = local_8c" (identifier "local_94") (= "=") (identifier "local_8c")) (; ";")) (expression_statement "FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);" (call_expression "FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0)" (identifier "FUN_000513a0") (argument_list "(&local_94,*piVar1,piVar1[1] + *piVar1,0)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) (, ",") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (, ",") (binary_expression "piVar1[1] + *piVar1" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001ef630(&local_94,local_90,0,1,0x2f);" (call_expression "FUN_001ef630(&local_94,local_90,0,1,0x2f)" (identifier "FUN_001ef630") (argument_list "(&local_94,local_90,0,1,0x2f)" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) (, ",") (identifier "local_90") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x2f") () ")"))) (; ";")) (expression_statement "piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);" (assignment_expression "piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1])" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_001f05c0(&local_94,*param_2,param_2[1])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001f05c0(&local_94,*param_2,param_2[1])" (identifier "FUN_001f05c0") (argument_list "(&local_94,*param_2,param_2[1])" (( "(") (pointer_expression "&local_94" (& "&") (identifier "local_94")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "local_ac = (int *)*piVar4;" (assignment_expression "local_ac = (int *)*piVar4" (identifier "local_ac") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (local_ac == piVar4 + 2) {\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }\n      else {\n        local_a4 = piVar4[2];\n      }" (if "if") (parenthesized_expression "(local_ac == piVar4 + 2)" (( "(") (binary_expression "local_ac == piVar4 + 2" (identifier "local_ac") (== "==") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n        local_a4 = piVar4[2];\n        local_a0 = piVar4[3];\n        local_9c = piVar4[4];\n        local_98 = piVar4[5];\n        local_ac = &local_a4;\n      }" ({ "{") (expression_statement "local_a4 = piVar4[2];" (assignment_expression "local_a4 = piVar4[2]" (identifier "local_a4") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_a0 = piVar4[3];" (assignment_expression "local_a0 = piVar4[3]" (identifier "local_a0") (= "=") (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_9c = piVar4[4];" (assignment_expression "local_9c = piVar4[4]" (identifier "local_9c") (= "=") (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_98 = piVar4[5];" (assignment_expression "local_98 = piVar4[5]" (identifier "local_98") (= "=") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_ac = &local_a4;" (assignment_expression "local_ac = &local_a4" (identifier "local_ac") (= "=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) (; ";")) (} "}")) (else_clause "else {\n        local_a4 = piVar4[2];\n      }" (else "else") (compound_statement "{\n        local_a4 = piVar4[2];\n      }" ({ "{") (expression_statement "local_a4 = piVar4[2];" (assignment_expression "local_a4 = piVar4[2]" (identifier "local_a4") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "local_a8 = piVar4[1];" (assignment_expression "local_a8 = piVar4[1]" (identifier "local_a8") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(piVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar4 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar4 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4 + 2)" (( "(") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*piVar4 = (int)(piVar4 + 2);" (assignment_expression "*piVar4 = (int)(piVar4 + 2)" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)(piVar4 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar4 + 2)" (( "(") (binary_expression "piVar4 + 2" (identifier "piVar4") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar4[1] = 0;" (assignment_expression "piVar4[1] = 0" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_94 != local_8c) {\n        FUN_001e6db0(local_94);\n      }" (if "if") (parenthesized_expression "(local_94 != local_8c)" (( "(") (binary_expression "local_94 != local_8c" (identifier "local_94") (!= "!=") (identifier "local_8c")) () ")")) (compound_statement "{\n        FUN_001e6db0(local_94);\n      }" ({ "{") (expression_statement "FUN_001e6db0(local_94);" (call_expression "FUN_001e6db0(local_94)" (identifier "FUN_001e6db0") (argument_list "(local_94)" (( "(") (identifier "local_94") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);" (assignment_expression "iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c)" (identifier "iVar3") (= "=") (call_expression "__xstat64(3,(char *)local_ac,(stat64 *)&local_7c)" (identifier "__xstat64") (argument_list "(3,(char *)local_ac,(stat64 *)&local_7c)" (( "(") (number_literal "3") (, ",") (cast_expression "(char *)local_ac" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_ac")) (, ",") (cast_expression "(stat64 *)&local_7c" (( "(") (type_descriptor "stat64 *" (type_identifier "stat64") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_7c" (& "&") (identifier "local_7c"))) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *param_1 = param_1 + 2;\n        if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }\n        param_1[1] = local_a8;\n        goto LAB_001a2277;\n      }" ({ "{") (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (local_ac == &local_a4) {\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }\n        else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" (if "if") (parenthesized_expression "(local_ac == &local_a4)" (( "(") (binary_expression "local_ac == &local_a4" (identifier "local_ac") (== "==") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) () ")")) (compound_statement "{\n          param_1[2] = local_a4;\n          param_1[3] = local_a0;\n          param_1[4] = local_9c;\n          param_1[5] = local_98;\n        }" ({ "{") (expression_statement "param_1[2] = local_a4;" (assignment_expression "param_1[2] = local_a4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_a4")) (; ";")) (expression_statement "param_1[3] = local_a0;" (assignment_expression "param_1[3] = local_a0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "param_1[4] = local_9c;" (assignment_expression "param_1[4] = local_9c" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "param_1[5] = local_98;" (assignment_expression "param_1[5] = local_98" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" (else "else") (compound_statement "{\n          *param_1 = local_ac;\n          param_1[2] = local_a4;\n        }" ({ "{") (expression_statement "*param_1 = local_ac;" (assignment_expression "*param_1 = local_ac" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_ac")) (; ";")) (expression_statement "param_1[2] = local_a4;" (assignment_expression "param_1[2] = local_a4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_a4")) (; ";")) (} "}")))) (expression_statement "param_1[1] = local_a8;" (assignment_expression "param_1[1] = local_a8" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_a8")) (; ";")) (goto_statement "goto LAB_001a2277;" (goto "goto") (statement_identifier "LAB_001a2277") (; ";")) (} "}"))) (if_statement "if (local_ac != &local_a4) {\n        FUN_001e6db0(local_ac);\n      }" (if "if") (parenthesized_expression "(local_ac != &local_a4)" (( "(") (binary_expression "local_ac != &local_a4" (identifier "local_ac") (!= "!=") (pointer_expression "&local_a4" (& "&") (identifier "local_a4"))) () ")")) (compound_statement "{\n        FUN_001e6db0(local_ac);\n      }" ({ "{") (expression_statement "FUN_001e6db0(local_ac);" (call_expression "FUN_001e6db0(local_ac)" (identifier "FUN_001e6db0") (argument_list "(local_ac)" (( "(") (identifier "local_ac") () ")"))) (; ";")) (} "}"))) (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_3[1] != piVar1)" (( "(") (binary_expression "(int *)param_3[1] != piVar1" (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "piVar1")) () ")")) (; ";")) (} "}"))) (expression_statement "*param_1 = param_1 + 2;" (assignment_expression "*param_1 = param_1 + 2" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);" (call_expression "FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0)" (identifier "FUN_000513a0") (argument_list "(param_1,*param_2,param_2[1] + *param_2,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (binary_expression "param_2[1] + *param_2" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_001a2277:\n  if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }" (statement_identifier "LAB_001a2277") (: ":") (if_statement "if (local_c4 != &local_bc) {\n    FUN_001e6db0(local_c4);\n  }" (if "if") (parenthesized_expression "(local_c4 != &local_bc)" (( "(") (binary_expression "local_c4 != &local_bc" (identifier "local_c4") (!= "!=") (pointer_expression "&local_bc" (& "&") (identifier "local_bc"))) () ")")) (compound_statement "{\n    FUN_001e6db0(local_c4);\n  }" ({ "{") (expression_statement "FUN_001e6db0(local_c4);" (call_expression "FUN_001e6db0(local_c4)" (identifier "FUN_001e6db0") (argument_list "(local_c4)" (( "(") (identifier "local_c4") () ")"))) (; ";")) (} "}")))) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

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

{
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_6;
  type_1 var_9;
  int *var_12;
  int var_15;
  type_1 var_18;
  type_2 extra_name;
  type_2 full_name;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_7;
  type_3 buf;
  
  var_8();
  var_9 = (extra_search_dir->_M_dataplus)._M_p;
  buf.st_dev._0_4_ = &buf.__pad1;
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_19<var_2*>((basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> *)&buf,
                      var_9,var_9 + extra_search_dir->_M_string_length,0);
                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */
  std::string::var_10((type_2 *)&buf,buf.st_dev._4_4_,0,1,'/');
                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */
  var_12 = (int *)std::string::var_11
                            ((type_2 *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);
  var_5 = &extra_name.field_2;
  if ((int *)*var_12 == var_12 + 2) {
    extra_name.field_2._M_allocated_capacity = var_12[2];
    extra_name.field_2._4_4_ = var_12[3];
    extra_name.field_2._8_4_ = var_12[4];
    extra_name.field_2._12_4_ = var_12[5];
    extra_name._M_dataplus._M_p = (type_1)var_5;
  }
  else {
    extra_name.field_2._M_allocated_capacity = var_12[2];
    extra_name._M_dataplus._M_p = (type_1)*var_12;
  }
  extra_name._M_string_length = var_12[1];
  *(type_4 *)(var_12 + 2) = 0;
  *var_12 = (int)(var_12 + 2);
  var_12[1] = 0;
  if ((type_5 *)buf.st_dev != &buf.__pad1) {
    var_13((type_5 *)buf.st_dev);
  }
  var_15 = var_14(3,extra_name._M_dataplus._M_p,(type_6 *)&buf);
  if (var_15 == 0) {
    (__return_storage_ptr__->_M_dataplus)._M_p = (type_1)&__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_7 *)((int)&__return_storage_ptr__->field_2 + 4) = extra_name.field_2._4_4_;
      *(type_7 *)((int)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_4_;
      *(type_7 *)((int)&__return_storage_ptr__->field_2 + 0xc) = extra_name.field_2._12_4_;
    }
    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_18 = (directories->
           super__Vector_base<gold::var_16,_std::var_1<gold::var_16>var_3>var_17).
           _M_impl._M_start;
  if (var_18 != (directories->
                super__Vector_base<gold::var_16,_std::var_1<gold::var_16>var_3>var_17)
                ._M_impl._M_finish) {
    var_6 = &full_name.field_2;
    do {
      var_9 = (var_18->name_)._M_dataplus._M_p;
      var_7._M_dataplus._M_p = (type_1)&var_7.field_2;
                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */
      std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
      var_19<var_2*>(&var_7,var_9,var_9 + (var_18->name_)._M_string_length,0);
                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */
      std::string::var_10((type_2 *)&var_7,var_7._M_string_length,0,1,'/');
                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */
      var_12 = (int *)std::string::var_11
                                ((type_2 *)&var_7,(name->_M_dataplus)._M_p,name->_M_string_length
                                );
      full_name._M_dataplus._M_p = (type_1)*var_12;
      if ((int *)full_name._M_dataplus._M_p == var_12 + 2) {
        full_name.field_2._M_allocated_capacity = var_12[2];
        full_name.field_2._4_4_ = var_12[3];
        full_name.field_2._8_4_ = var_12[4];
        full_name.field_2._12_4_ = var_12[5];
        full_name._M_dataplus._M_p = (type_1)var_6;
      }
      else {
        full_name.field_2._M_allocated_capacity = var_12[2];
      }
      full_name._M_string_length = var_12[1];
      *(type_4 *)(var_12 + 2) = 0;
      *var_12 = (int)(var_12 + 2);
      var_12[1] = 0;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
           *)var_7._M_dataplus._M_p != &var_7.field_2) {
        var_13(var_7._M_dataplus._M_p);
      }
      var_15 = var_14(3,full_name._M_dataplus._M_p,(type_6 *)&buf);
      if (var_15 == 0) {
        (__return_storage_ptr__->_M_dataplus)._M_p = (type_1)&__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_7 *)((int)&__return_storage_ptr__->field_2 + 4) = full_name.field_2._4_4_;
          *(type_7 *)((int)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_4_;
          *(type_7 *)((int)&__return_storage_ptr__->field_2 + 0xc) = full_name.field_2._12_4_;
        }
        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_001a2277;
      }
      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) {
        var_13(full_name._M_dataplus._M_p);
      }
      var_18 = var_18 + 1;
    } while ((directories->
             super__Vector_base<gold::var_16,_std::var_1<gold::var_16>var_3>var_17).
             _M_impl._M_finish != var_18);
  }
  (__return_storage_ptr__->_M_dataplus)._M_p = (type_1)&__return_storage_ptr__->field_2;
  var_9 = (name->_M_dataplus)._M_p;
                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_19<var_2*>(__return_storage_ptr__,var_9,var_9 + name->_M_string_length,0);
LAB_001a2277:
  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) {
    var_13(extra_name._M_dataplus._M_p);
  }
  return __return_storage_ptr__;
}


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

undefined4 * MASKED(undefined4 *param_1,int *param_2,int *param_3,int *param_4)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int *local_c4;
  int local_bc;
  int local_b8;
  int local_b4;
  int local_b0;
  int *local_ac;
  int local_a8;
  int local_a4;
  int local_a0;
  int local_9c;
  int local_98;
  undefined1 *local_94;
  undefined4 local_90;
  undefined1 local_8c [16];
  undefined1 *local_7c;
  undefined4 local_78;
  undefined1 local_74 [100];
  
  FUN_000559ee();
  local_7c = local_74;
  FUN_000513a0((stat64 *)&local_7c,*param_4,param_4[1] + *param_4,0);
                    /* try { // try from 001a204b to 001a204f has its CatchHandler @ 001a23a9 */
  FUN_001ef630((stat64 *)&local_7c,local_78,0,1,0x2f);
                    /* try { // try from 001a2061 to 001a2065 has its CatchHandler @ 001a23b4 */
  piVar1 = (int *)FUN_001f05c0((stat64 *)&local_7c,*param_2,param_2[1]);
  if ((int *)*piVar1 == piVar1 + 2) {
    local_bc = piVar1[2];
    local_b8 = piVar1[3];
    local_b4 = piVar1[4];
    local_b0 = piVar1[5];
    local_c4 = &local_bc;
  }
  else {
    local_bc = piVar1[2];
    local_c4 = (int *)*piVar1;
  }
  iVar3 = piVar1[1];
  *(undefined1 *)(piVar1 + 2) = 0;
  *piVar1 = (int)(piVar1 + 2);
  piVar1[1] = 0;
  if (local_7c != local_74) {
    FUN_001e6db0(local_7c);
  }
  iVar2 = __xstat64(3,(char *)local_c4,(stat64 *)&local_7c);
  if (iVar2 == 0) {
    *param_1 = param_1 + 2;
    if (local_c4 == &local_bc) {
      param_1[2] = local_bc;
      param_1[3] = local_b8;
      param_1[4] = local_b4;
      param_1[5] = local_b0;
    }
    else {
      *param_1 = local_c4;
      param_1[2] = local_bc;
    }
    param_1[1] = iVar3;
    return param_1;
  }
  piVar1 = (int *)*param_3;
  if (piVar1 != (int *)param_3[1]) {
    do {
      local_94 = local_8c;
                    /* try { // try from 001a21cb to 001a21cf has its CatchHandler @ 001a239b */
      FUN_000513a0(&local_94,*piVar1,piVar1[1] + *piVar1,0);
                    /* try { // try from 001a21ea to 001a21ee has its CatchHandler @ 001a23bf */
      FUN_001ef630(&local_94,local_90,0,1,0x2f);
                    /* try { // try from 001a2200 to 001a2204 has its CatchHandler @ 001a23a2 */
      piVar4 = (int *)FUN_001f05c0(&local_94,*param_2,param_2[1]);
      local_ac = (int *)*piVar4;
      if (local_ac == piVar4 + 2) {
        local_a4 = piVar4[2];
        local_a0 = piVar4[3];
        local_9c = piVar4[4];
        local_98 = piVar4[5];
        local_ac = &local_a4;
      }
      else {
        local_a4 = piVar4[2];
      }
      local_a8 = piVar4[1];
      *(undefined1 *)(piVar4 + 2) = 0;
      *piVar4 = (int)(piVar4 + 2);
      piVar4[1] = 0;
      if (local_94 != local_8c) {
        FUN_001e6db0(local_94);
      }
      iVar3 = __xstat64(3,(char *)local_ac,(stat64 *)&local_7c);
      if (iVar3 == 0) {
        *param_1 = param_1 + 2;
        if (local_ac == &local_a4) {
          param_1[2] = local_a4;
          param_1[3] = local_a0;
          param_1[4] = local_9c;
          param_1[5] = local_98;
        }
        else {
          *param_1 = local_ac;
          param_1[2] = local_a4;
        }
        param_1[1] = local_a8;
        goto LAB_001a2277;
      }
      if (local_ac != &local_a4) {
        FUN_001e6db0(local_ac);
      }
      piVar1 = piVar1 + 7;
    } while ((int *)param_3[1] != piVar1);
  }
  *param_1 = param_1 + 2;
                    /* try { // try from 001a226f to 001a2273 has its CatchHandler @ 001a239b */
  FUN_000513a0(param_1,*param_2,param_2[1] + *param_2,0);
LAB_001a2277:
  if (local_c4 != &local_bc) {
    FUN_001e6db0(local_c4);
  }
  return param_1;
}

