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

{
  pointer pcVar1;
  int iVar2;
  long *plVar3;
  pointer pSVar4;
  string extra_name;
  string full_name;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_e8;
  stat buf;
  
  pcVar1 = (extra_search_dir->_M_dataplus)._M_p;
  buf.st_dev = (__dev_t)&buf.st_nlink;
  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,
                      pcVar1,pcVar1 + extra_search_dir->_M_string_length);
                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */
  std::string::_M_replace_aux((string *)&buf,buf.st_ino,0,1,'/');
                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */
  plVar3 = (long *)std::string::_M_append
                             ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);
  extra_name._M_dataplus._M_p = (pointer)&extra_name.field_2;
  if ((long *)*plVar3 == plVar3 + 2) {
    extra_name.field_2._M_allocated_capacity = plVar3[2];
    extra_name.field_2._8_8_ = plVar3[3];
  }
  else {
    extra_name.field_2._M_allocated_capacity = plVar3[2];
    extra_name._M_dataplus._M_p = (pointer)*plVar3;
  }
  extra_name._M_string_length = plVar3[1];
  *(undefined1 *)(plVar3 + 2) = 0;
  *plVar3 = (long)(plVar3 + 2);
  plVar3[1] = 0;
  if ((__nlink_t *)buf.st_dev != &buf.st_nlink) {
    operator_delete((void *)buf.st_dev);
  }
  iVar2 = __xstat64(1,extra_name._M_dataplus._M_p,(stat64 *)&buf);
  if (iVar2 == 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 == &extra_name.field_2) {
      (__return_storage_ptr__->field_2)._M_allocated_capacity =
           extra_name.field_2._M_allocated_capacity;
      *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;
    }
    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;
  }
  else {
    pSVar4 = (directories->
             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).
             _M_impl._M_start;
    if (pSVar4 != (directories->
                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>
                  )._M_impl._M_finish) {
      do {
        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;
        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;
                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */
        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);
                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */
        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');
                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */
        plVar3 = (long *)std::string::_M_append
                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,
                                    name->_M_string_length);
        full_name._M_dataplus._M_p = (pointer)*plVar3;
        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {
          full_name.field_2._M_allocated_capacity = plVar3[2];
          full_name.field_2._8_8_ = plVar3[3];
          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;
        }
        else {
          full_name.field_2._M_allocated_capacity = plVar3[2];
        }
        full_name._M_string_length = plVar3[1];
        *(undefined1 *)(plVar3 + 2) = 0;
        *plVar3 = (long)(plVar3 + 2);
        plVar3[1] = 0;
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {
          operator_delete(local_e8._M_dataplus._M_p);
        }
        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);
        if (iVar2 == 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 == &full_name.field_2) {
            (__return_storage_ptr__->field_2)._M_allocated_capacity =
                 full_name.field_2._M_allocated_capacity;
            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;
          }
          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_001d4cac;
        }
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)full_name._M_dataplus._M_p != &full_name.field_2) {
          operator_delete(full_name._M_dataplus._M_p);
        }
        pSVar4 = pSVar4 + 1;
      } while ((directories->
               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).
               _M_impl._M_finish != pSVar4);
    }
    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;
    pcVar1 = (name->_M_dataplus)._M_p;
                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */
    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
    _M_construct<char*>(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length);
LAB_001d4cac:
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)extra_name._M_dataplus._M_p != &extra_name.field_2) {
      operator_delete(extra_name._M_dataplus._M_p);
    }
  }
  return __return_storage_ptr__;
}



long * FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)

{
  long lVar1;
  int iVar2;
  long *plVar3;
  long *plVar4;
  long *local_128;
  long local_118;
  long lStack_110;
  long *local_108;
  long local_100;
  long local_f8;
  long lStack_f0;
  undefined1 *local_e8;
  undefined8 local_e0;
  undefined1 local_d8 [16];
  stat64 local_c8;
  
  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;
  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);
                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */
  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);
                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */
  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);
  local_128 = &local_118;
  if ((long *)*plVar3 == plVar3 + 2) {
    local_118 = plVar3[2];
    lStack_110 = plVar3[3];
  }
  else {
    local_118 = plVar3[2];
    local_128 = (long *)*plVar3;
  }
  lVar1 = plVar3[1];
  *(undefined1 *)(plVar3 + 2) = 0;
  *plVar3 = (long)(plVar3 + 2);
  plVar3[1] = 0;
  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {
    FUN_00338a50();
  }
  iVar2 = __xstat64(1,(char *)local_128,&local_c8);
  if (iVar2 == 0) {
    *param_1 = (long)(param_1 + 2);
    if (local_128 == &local_118) {
      param_1[2] = local_118;
      param_1[3] = lStack_110;
    }
    else {
      *param_1 = (long)local_128;
      param_1[2] = local_118;
    }
    param_1[1] = lVar1;
  }
  else {
    plVar3 = (long *)*param_3;
    if (plVar3 != (long *)param_3[1]) {
      do {
        local_e8 = local_d8;
                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */
        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);
                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */
        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);
                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */
        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);
        local_108 = (long *)*plVar4;
        if (local_108 == plVar4 + 2) {
          local_f8 = plVar4[2];
          lStack_f0 = plVar4[3];
          local_108 = &local_f8;
        }
        else {
          local_f8 = plVar4[2];
        }
        local_100 = plVar4[1];
        *(undefined1 *)(plVar4 + 2) = 0;
        *plVar4 = (long)(plVar4 + 2);
        plVar4[1] = 0;
        if (local_e8 != local_d8) {
          FUN_00338a50();
        }
        iVar2 = __xstat64(1,(char *)local_108,&local_c8);
        if (iVar2 == 0) {
          *param_1 = (long)(param_1 + 2);
          if (local_108 == &local_f8) {
            param_1[2] = local_f8;
            param_1[3] = lStack_f0;
          }
          else {
            *param_1 = (long)local_108;
            param_1[2] = local_f8;
          }
          param_1[1] = local_100;
          goto LAB_001d4cac;
        }
        if (local_108 != &local_f8) {
          FUN_00338a50();
        }
        plVar3 = plVar3 + 5;
      } while ((long *)param_3[1] != plVar3);
    }
    *param_1 = (long)(param_1 + 2);
                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */
    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);
LAB_001d4cac:
    if (local_128 != &local_118) {
      FUN_00338a50();
    }
  }
  return param_1;
}


PUSH R15
MOV R15,RDX
PUSH R14
PUSH R13
PUSH R12
MOV R12,RSI
PUSH RBP
PUSH RBX
SUB RSP,0x108
MOV RSI,qword ptr [RCX]
MOV RDX,qword ptr [RCX + 0x8]
LEA R13,[RSP + 0x70]
MOV qword ptr [RSP],RDI
ADD RDX,RSI
LEA RAX,[R13 + 0x10]
MOV RDI,R13
MOV qword ptr [RSP + 0x70],RAX
CALL 0x001caae0
MOV RSI,qword ptr [RSP + 0x78]
XOR EDX,EDX
MOV RDI,R13
MOV R8D,0x2f
MOV ECX,0x1
CALL 0x003400e0
MOV RDX,qword ptr [R12 + 0x8]
MOV RSI,qword ptr [R12]
MOV RDI,R13
CALL 0x00340cd0
LEA RDX,[RSP + 0x20]
LEA RBX,[RSP + 0x10]
MOV qword ptr [RSP + 0x10],RDX
MOV RCX,qword ptr [RAX]
LEA RDX,[RAX + 0x10]
MOV qword ptr [RSP + 0x8],RBX
CMP RCX,RDX
JZ 0x001d4cd0
MOV qword ptr [RSP + 0x10],RCX
MOV RCX,qword ptr [RAX + 0x10]
MOV qword ptr [RSP + 0x20],RCX
MOV RCX,qword ptr [RAX + 0x8]
MOV byte ptr [RAX + 0x10],0x0
MOV qword ptr [RSP + 0x18],RCX
MOV qword ptr [RAX],RDX
MOV qword ptr [RAX + 0x8],0x0
MOV RDI,qword ptr [RSP + 0x70]
LEA RAX,[R13 + 0x10]
CMP RDI,RAX
JZ 0x001d4b23
CALL 0x00338a50
MOV RSI,qword ptr [RSP + 0x10]
MOV RDX,R13
MOV EDI,0x1
CALL 0x001508b0
TEST EAX,EAX
JNZ 0x001d4b90
MOV RBX,qword ptr [RSP]
MOV RDX,qword ptr [RSP + 0x8]
LEA RAX,[RBX + 0x10]
ADD RDX,0x10
MOV qword ptr [RBX],RAX
MOV RAX,qword ptr [RSP + 0x10]
CMP RAX,RDX
JZ 0x001d4d20
MOV RBX,qword ptr [RSP]
MOV qword ptr [RBX],RAX
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RBX + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV RBX,qword ptr [RSP]
MOV qword ptr [RBX + 0x8],RAX
MOV RAX,qword ptr [RSP]
ADD RSP,0x108
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RBX,qword ptr [R15]
CMP RBX,qword ptr [R15 + 0x8]
JZ 0x001d4c90
LEA RBP,[RSP + 0x50]
LEA R14,[RSP + 0x30]
JMP 0x001d4c20
MOV qword ptr [RSP + 0x30],RCX
MOV RCX,qword ptr [RAX + 0x10]
MOV qword ptr [RSP + 0x40],RCX
MOV RCX,qword ptr [RAX + 0x8]
MOV byte ptr [RAX + 0x10],0x0
MOV qword ptr [RSP + 0x38],RCX
MOV qword ptr [RAX],RDX
MOV RDI,qword ptr [RSP + 0x50]
MOV qword ptr [RAX + 0x8],0x0
LEA RAX,[RBP + 0x10]
CMP RDI,RAX
JZ 0x001d4be9
CALL 0x00338a50
MOV RSI,qword ptr [RSP + 0x30]
MOV RDX,R13
MOV EDI,0x1
CALL 0x001508b0
TEST EAX,EAX
JZ 0x001d4ce0
MOV RDI,qword ptr [RSP + 0x30]
LEA RAX,[R14 + 0x10]
CMP RDI,RAX
JZ 0x001d4c16
CALL 0x00338a50
ADD RBX,0x28
CMP qword ptr [R15 + 0x8],RBX
JZ 0x001d4c90
LEA RAX,[RBP + 0x10]
MOV RDI,RBP
MOV qword ptr [RSP + 0x50],RAX
MOV RSI,qword ptr [RBX]
MOV RDX,qword ptr [RBX + 0x8]
ADD RDX,RSI
CALL 0x001caae0
MOV RSI,qword ptr [RSP + 0x58]
MOV R8D,0x2f
XOR EDX,EDX
MOV RDI,RBP
MOV ECX,0x1
CALL 0x003400e0
MOV RDX,qword ptr [R12 + 0x8]
MOV RSI,qword ptr [R12]
MOV RDI,RBP
CALL 0x00340cd0
LEA RDX,[R14 + 0x10]
MOV qword ptr [RSP + 0x30],RDX
MOV RCX,qword ptr [RAX]
LEA RDX,[RAX + 0x10]
CMP RCX,RDX
JNZ 0x001d4bb0
MOVDQU XMM0,xmmword ptr [RAX + 0x10]
MOVAPS xmmword ptr [RSP + 0x40],XMM0
JMP 0x001d4bbe
MOV RDI,qword ptr [RSP]
LEA RAX,[RDI + 0x10]
MOV qword ptr [RDI],RAX
MOV RSI,qword ptr [R12]
MOV RDX,qword ptr [R12 + 0x8]
ADD RDX,RSI
CALL 0x001caae0
MOV RAX,qword ptr [RSP + 0x8]
MOV RDI,qword ptr [RSP + 0x10]
ADD RAX,0x10
CMP RDI,RAX
JZ 0x001d4b78
CALL 0x00338a50
JMP 0x001d4b78
MOVDQU XMM1,xmmword ptr [RAX + 0x10]
MOVAPS xmmword ptr [RSP + 0x20],XMM1
JMP 0x001d4af8
MOV RBX,qword ptr [RSP]
ADD R14,0x10
LEA RAX,[RBX + 0x10]
MOV qword ptr [RBX],RAX
MOV RAX,qword ptr [RSP + 0x30]
CMP RAX,R14
JZ 0x001d4d30
MOV RBX,qword ptr [RSP]
MOV qword ptr [RBX],RAX
MOV RAX,qword ptr [RSP + 0x40]
MOV qword ptr [RBX + 0x10],RAX
MOV RAX,qword ptr [RSP + 0x38]
MOV RBX,qword ptr [RSP]
MOV qword ptr [RBX + 0x8],RAX
JMP 0x001d4cac
MOVDQA XMM2,xmmword ptr [RSP + 0x20]
MOVUPS xmmword ptr [RBX + 0x10],XMM2
JMP 0x001d4b6b
MOVDQA XMM3,xmmword ptr [RSP + 0x40]
MOVUPS xmmword ptr [RBX + 0x10],XMM3
JMP 0x001d4d09
(translation_unit "long * FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */\n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */\n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */\n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */\n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)" * (function_declarator "FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)" identifier (parameter_list "(long *param_1,long *param_2,long *param_3,long *param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */\n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */\n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long *local_128;" (sized_type_specifier "long" long) (pointer_declarator "*local_128" * identifier) ;) (declaration "long local_118;" (sized_type_specifier "long" long) identifier ;) (declaration "long lStack_110;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_108;" (sized_type_specifier "long" long) (pointer_declarator "*local_108" * identifier) ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_f8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lStack_f0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "undefined8 local_e0;" type_identifier identifier ;) (declaration "undefined1 local_d8 [16];" type_identifier (array_declarator "local_d8 [16]" identifier [ number_literal ]) ;) (declaration "stat64 local_c8;" type_identifier identifier ;) (expression_statement "local_c8.st_dev = (__dev_t)&local_c8.st_nlink;" (assignment_expression "local_c8.st_dev = (__dev_t)&local_c8.st_nlink" (field_expression "local_c8.st_dev" identifier . field_identifier) = (binary_expression "(__dev_t)&local_c8.st_nlink" (parenthesized_expression "(__dev_t)" ( identifier )) & (field_expression "local_c8.st_nlink" identifier . field_identifier))) ;) (expression_statement "FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);" (call_expression "FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4)" identifier (argument_list "(&local_c8,*param_4,param_4[1] + *param_4)" ( (pointer_expression "&local_c8" & 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)) ))) ;) comment (expression_statement "FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);" (call_expression "FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f)" identifier (argument_list "(&local_c8,local_c8.st_ino,0,1,0x2f)" ( (pointer_expression "&local_c8" & identifier) , (field_expression "local_c8.st_ino" identifier . field_identifier) , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);" (assignment_expression "plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1])" identifier = (cast_expression "(long *)FUN_00340cd0(&local_c8,*param_2,param_2[1])" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00340cd0(&local_c8,*param_2,param_2[1])" identifier (argument_list "(&local_c8,*param_2,param_2[1])" ( (pointer_expression "&local_c8" & identifier) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_128 = &local_118;" (assignment_expression "local_128 = &local_118" identifier = (pointer_expression "&local_118" & identifier)) ;) (if_statement "if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" if (parenthesized_expression "((long *)*plVar3 == plVar3 + 2)" ( (binary_expression "(long *)*plVar3 == plVar3 + 2" (cast_expression "(long *)*plVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier)) == (binary_expression "plVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }" { (expression_statement "local_118 = plVar3[2];" (assignment_expression "local_118 = plVar3[2]" identifier = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "lStack_110 = plVar3[3];" (assignment_expression "lStack_110 = plVar3[3]" identifier = (subscript_expression "plVar3[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" else (compound_statement "{\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" { (expression_statement "local_118 = plVar3[2];" (assignment_expression "local_118 = plVar3[2]" identifier = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_128 = (long *)*plVar3;" (assignment_expression "local_128 = (long *)*plVar3" identifier = (cast_expression "(long *)*plVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier))) ;) }))) (expression_statement "lVar1 = plVar3[1];" (assignment_expression "lVar1 = plVar3[1]" identifier = (subscript_expression "plVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(plVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar3 + 2)" * (cast_expression "(undefined1 *)(plVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar3 = (long)(plVar3 + 2);" (assignment_expression "*plVar3 = (long)(plVar3 + 2)" (pointer_expression "*plVar3" * identifier) = (cast_expression "(long)(plVar3 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar3[1] = 0;" (assignment_expression "plVar3[1] = 0" (subscript_expression "plVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }" if (parenthesized_expression "((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink)" ( (binary_expression "(__nlink_t *)local_c8.st_dev != &local_c8.st_nlink" (cast_expression "(__nlink_t *)local_c8.st_dev" ( (type_descriptor "__nlink_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c8.st_dev" identifier . field_identifier)) != (pointer_expression "&local_c8.st_nlink" & (field_expression "local_c8.st_nlink" identifier . field_identifier))) )) (compound_statement "{\n    FUN_00338a50();\n  }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = __xstat64(1,(char *)local_128,&local_c8);" (assignment_expression "iVar2 = __xstat64(1,(char *)local_128,&local_c8)" identifier = (call_expression "__xstat64(1,(char *)local_128,&local_c8)" identifier (argument_list "(1,(char *)local_128,&local_c8)" ( number_literal , (cast_expression "(char *)local_128" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }" { (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" if (parenthesized_expression "(local_128 == &local_118)" ( (binary_expression "local_128 == &local_118" identifier == (pointer_expression "&local_118" & identifier)) )) (compound_statement "{\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }" { (expression_statement "param_1[2] = local_118;" (assignment_expression "param_1[2] = local_118" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = lStack_110;" (assignment_expression "param_1[3] = lStack_110" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" else (compound_statement "{\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" { (expression_statement "*param_1 = (long)local_128;" (assignment_expression "*param_1 = (long)local_128" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)local_128" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_118;" (assignment_expression "param_1[2] = local_118" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = lVar1;" (assignment_expression "param_1[1] = lVar1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" else (compound_statement "{\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" { (expression_statement "plVar3 = (long *)*param_3;" (assignment_expression "plVar3 = (long *)*param_3" identifier = (cast_expression "(long *)*param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }" if (parenthesized_expression "(plVar3 != (long *)param_3[1])" ( (binary_expression "plVar3 != (long *)param_3[1]" identifier != (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }" { (do_statement "do {\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);" do (compound_statement "{\n        local_e8 = local_d8;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      }" { (expression_statement "local_e8 = local_d8;" (assignment_expression "local_e8 = local_d8" identifier = identifier) ;) comment (expression_statement "FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);" (call_expression "FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3)" identifier (argument_list "(&local_e8,*plVar3,plVar3[1] + *plVar3)" ( (pointer_expression "&local_e8" & identifier) , (pointer_expression "*plVar3" * identifier) , (binary_expression "plVar3[1] + *plVar3" (subscript_expression "plVar3[1]" identifier [ number_literal ]) + (pointer_expression "*plVar3" * identifier)) ))) ;) comment (expression_statement "FUN_003400e0(&local_e8,local_e0,0,1,0x2f);" (call_expression "FUN_003400e0(&local_e8,local_e0,0,1,0x2f)" identifier (argument_list "(&local_e8,local_e0,0,1,0x2f)" ( (pointer_expression "&local_e8" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) comment (expression_statement "plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);" (assignment_expression "plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1])" identifier = (cast_expression "(long *)FUN_00340cd0(&local_e8,*param_2,param_2[1])" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00340cd0(&local_e8,*param_2,param_2[1])" identifier (argument_list "(&local_e8,*param_2,param_2[1])" ( (pointer_expression "&local_e8" & identifier) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_108 = (long *)*plVar4;" (assignment_expression "local_108 = (long *)*plVar4" identifier = (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier))) ;) (if_statement "if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }" if (parenthesized_expression "(local_108 == plVar4 + 2)" ( (binary_expression "local_108 == plVar4 + 2" identifier == (binary_expression "plVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }" { (expression_statement "local_f8 = plVar4[2];" (assignment_expression "local_f8 = plVar4[2]" identifier = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) (expression_statement "lStack_f0 = plVar4[3];" (assignment_expression "lStack_f0 = plVar4[3]" identifier = (subscript_expression "plVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_108 = &local_f8;" (assignment_expression "local_108 = &local_f8" identifier = (pointer_expression "&local_f8" & identifier)) ;) }) (else_clause "else {\n          local_f8 = plVar4[2];\n        }" else (compound_statement "{\n          local_f8 = plVar4[2];\n        }" { (expression_statement "local_f8 = plVar4[2];" (assignment_expression "local_f8 = plVar4[2]" identifier = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_100 = plVar4[1];" (assignment_expression "local_100 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" * (cast_expression "(undefined1 *)(plVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" * identifier) = (cast_expression "(long)(plVar4 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }" if (parenthesized_expression "(local_e8 != local_d8)" ( (binary_expression "local_e8 != local_d8" identifier != identifier) )) (compound_statement "{\n          FUN_00338a50();\n        }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = __xstat64(1,(char *)local_108,&local_c8);" (assignment_expression "iVar2 = __xstat64(1,(char *)local_108,&local_c8)" identifier = (call_expression "__xstat64(1,(char *)local_108,&local_c8)" identifier (argument_list "(1,(char *)local_108,&local_c8)" ( number_literal , (cast_expression "(char *)local_108" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }" { (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" if (parenthesized_expression "(local_108 == &local_f8)" ( (binary_expression "local_108 == &local_f8" identifier == (pointer_expression "&local_f8" & identifier)) )) (compound_statement "{\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }" { (expression_statement "param_1[2] = local_f8;" (assignment_expression "param_1[2] = local_f8" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = lStack_f0;" (assignment_expression "param_1[3] = lStack_f0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" else (compound_statement "{\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" { (expression_statement "*param_1 = (long)local_108;" (assignment_expression "*param_1 = (long)local_108" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)local_108" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_f8;" (assignment_expression "param_1[2] = local_f8" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = local_100;" (assignment_expression "param_1[1] = local_100" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_001d4cac;" goto statement_identifier ;) })) (if_statement "if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }" if (parenthesized_expression "(local_108 != &local_f8)" ( (binary_expression "local_108 != &local_f8" identifier != (pointer_expression "&local_f8" & identifier)) )) (compound_statement "{\n          FUN_00338a50();\n        }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "plVar3 = plVar3 + 5;" (assignment_expression "plVar3 = plVar3 + 5" identifier = (binary_expression "plVar3 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_3[1] != plVar3)" ( (binary_expression "(long *)param_3[1] != plVar3" (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) comment (expression_statement "FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);" (call_expression "FUN_001caae0(param_1,*param_2,param_2[1] + *param_2)" identifier (argument_list "(param_1,*param_2,param_2[1] + *param_2)" ( 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)) ))) ;) (labeled_statement "LAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }" statement_identifier : (if_statement "if (local_128 != &local_118) {\n      FUN_00338a50();\n    }" if (parenthesized_expression "(local_128 != &local_118)" ( (binary_expression "local_128 != &local_118" identifier != (pointer_expression "&local_118" & identifier)) )) (compound_statement "{\n      FUN_00338a50();\n    }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) }))) }))) (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  pointer pcVar1;\n  int iVar2;\n  long *plVar3;\n  pointer pSVar4;\n  string extra_name;\n  string full_name;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_e8;\n  stat buf;\n  \n  pcVar1 = (extra_search_dir->_M_dataplus)._M_p;\n  buf.st_dev = (__dev_t)&buf.st_nlink;\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                      pcVar1,pcVar1 + extra_search_dir->_M_string_length);\n                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */\n  std::string::_M_replace_aux((string *)&buf,buf.st_ino,0,1,'/');\n                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */\n  plVar3 = (long *)std::string::_M_append\n                             ((string *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);\n  extra_name._M_dataplus._M_p = (pointer)&extra_name.field_2;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name.field_2._8_8_ = plVar3[3];\n  }\n  else {\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*plVar3;\n  }\n  extra_name._M_string_length = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)buf.st_dev != &buf.st_nlink) {\n    operator_delete((void *)buf.st_dev);\n  }\n  iVar2 = __xstat64(1,extra_name._M_dataplus._M_p,(stat64 *)&buf);\n  if (iVar2 == 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 == &extra_name.field_2) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;\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  }\n  else {\n    pSVar4 = (directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_start;\n    if (pSVar4 != (directories->\n                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                  )._M_impl._M_finish) {\n      do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);\n    }\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    pcVar1 = (name->_M_dataplus)._M_p;\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length);\nLAB_001d4cac:\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 != &extra_name.field_2) {\n      operator_delete(extra_name._M_dataplus._M_p);\n    }\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  pointer pcVar1;" statement_identifier : (ERROR ":find_file_in_dir_list\n                   (string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)\n\n{" : (call_expression "find_file_in_dir_list\n                   (string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)" identifier (argument_list "(string *__return_storage_ptr__,string *name,Dir_list *directories,\n                   string *extra_search_dir)" ( (binary_expression "string *__return_storage_ptr__" identifier * identifier) , (binary_expression "string *name" identifier * identifier) , (binary_expression "Dir_list *directories" identifier * identifier) , (binary_expression "string *extra_search_dir" identifier * identifier) ))) {) (declaration "pointer pcVar1;" type_identifier identifier ;)) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "pointer pSVar4;" 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_e8;" 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_e8;" (binary_expression "allocator<char>_> local_e8" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;)) (declaration "stat buf;" type_identifier identifier ;) (expression_statement "pcVar1 = (extra_search_dir->_M_dataplus)._M_p;" (assignment_expression "pcVar1 = (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 = (__dev_t)&buf.st_nlink;" (assignment_expression "buf.st_dev = (__dev_t)&buf.st_nlink" (field_expression "buf.st_dev" identifier . field_identifier) = (binary_expression "(__dev_t)&buf.st_nlink" (parenthesized_expression "(__dev_t)" ( identifier )) & (field_expression "buf.st_nlink" 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                      pcVar1,pcVar1 + extra_search_dir->_M_string_length);" 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                      pcVar1,pcVar1 + extra_search_dir->_M_string_length);" (comma_expression "allocator<char>_> *)&buf,\n                      pcVar1,pcVar1 + extra_search_dir->_M_string_length" (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 "pcVar1,pcVar1 + extra_search_dir->_M_string_length" identifier , (binary_expression "pcVar1 + extra_search_dir->_M_string_length" identifier + (field_expression "extra_search_dir->_M_string_length" identifier -> field_identifier)))) (ERROR ")" )) ;)) comment (labeled_statement "std::string::_M_replace_aux((string *)&buf,buf.st_ino,0,1,'/');" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace_aux((string *)&buf,buf.st_ino,0,1,'/');" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace_aux((string *)&buf,buf.st_ino,0,1,'/');" (call_expression "_M_replace_aux((string *)&buf,buf.st_ino,0,1,'/')" identifier (argument_list "((string *)&buf,buf.st_ino,0,1,'/')" ( (cast_expression "(string *)&buf" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&buf" & identifier)) , (field_expression "buf.st_ino" identifier . field_identifier) , number_literal , number_literal , (char_literal "'/'" ' character ') ))) ;))) comment (ERROR "plVar3 = (long *)std::" (assignment_expression "plVar3 = (long *)std" identifier = (cast_expression "(long *)std" ( (type_descriptor "long *" (sized_type_specifier "long" long) (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 "extra_name._M_dataplus._M_p = (pointer)&extra_name.field_2;" (assignment_expression "extra_name._M_dataplus._M_p = (pointer)&extra_name.field_2" (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&extra_name.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "extra_name.field_2" identifier . field_identifier))) ;) (if_statement "if ((long *)*plVar3 == plVar3 + 2) {\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name.field_2._8_8_ = plVar3[3];\n  }\n  else {\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*plVar3;\n  }" if (parenthesized_expression "((long *)*plVar3 == plVar3 + 2)" ( (binary_expression "(long *)*plVar3 == plVar3 + 2" (cast_expression "(long *)*plVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier)) == (binary_expression "plVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name.field_2._8_8_ = plVar3[3];\n  }" { (expression_statement "extra_name.field_2._M_allocated_capacity = plVar3[2];" (assignment_expression "extra_name.field_2._M_allocated_capacity = plVar3[2]" (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "extra_name.field_2._8_8_ = plVar3[3];" (assignment_expression "extra_name.field_2._8_8_ = plVar3[3]" (field_expression "extra_name.field_2._8_8_" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "plVar3[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*plVar3;\n  }" else (compound_statement "{\n    extra_name.field_2._M_allocated_capacity = plVar3[2];\n    extra_name._M_dataplus._M_p = (pointer)*plVar3;\n  }" { (expression_statement "extra_name.field_2._M_allocated_capacity = plVar3[2];" (assignment_expression "extra_name.field_2._M_allocated_capacity = plVar3[2]" (field_expression "extra_name.field_2._M_allocated_capacity" (field_expression "extra_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "extra_name._M_dataplus._M_p = (pointer)*plVar3;" (assignment_expression "extra_name._M_dataplus._M_p = (pointer)*plVar3" (field_expression "extra_name._M_dataplus._M_p" (field_expression "extra_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)*plVar3" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) }))) (expression_statement "extra_name._M_string_length = plVar3[1];" (assignment_expression "extra_name._M_string_length = plVar3[1]" (field_expression "extra_name._M_string_length" identifier . field_identifier) = (subscript_expression "plVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(plVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar3 + 2)" * (cast_expression "(undefined1 *)(plVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar3 = (long)(plVar3 + 2);" (assignment_expression "*plVar3 = (long)(plVar3 + 2)" (pointer_expression "*plVar3" * identifier) = (cast_expression "(long)(plVar3 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar3[1] = 0;" (assignment_expression "plVar3[1] = 0" (subscript_expression "plVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((__nlink_t *)buf.st_dev != &buf.st_nlink) {\n    operator_delete((void *)buf.st_dev);\n  }" if (parenthesized_expression "((__nlink_t *)buf.st_dev != &buf.st_nlink)" ( (binary_expression "(__nlink_t *)buf.st_dev != &buf.st_nlink" (cast_expression "(__nlink_t *)buf.st_dev" ( (type_descriptor "__nlink_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "buf.st_dev" identifier . field_identifier)) != (pointer_expression "&buf.st_nlink" & (field_expression "buf.st_nlink" identifier . field_identifier))) )) (compound_statement "{\n    operator_delete((void *)buf.st_dev);\n  }" { (expression_statement "operator_delete((void *)buf.st_dev);" (call_expression "operator_delete((void *)buf.st_dev)" identifier (argument_list "((void *)buf.st_dev)" ( (cast_expression "(void *)buf.st_dev" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "buf.st_dev" identifier . field_identifier)) ))) ;) })) (expression_statement "iVar2 = __xstat64(1,extra_name._M_dataplus._M_p,(stat64 *)&buf);" (assignment_expression "iVar2 = __xstat64(1,extra_name._M_dataplus._M_p,(stat64 *)&buf)" identifier = (call_expression "__xstat64(1,extra_name._M_dataplus._M_p,(stat64 *)&buf)" identifier (argument_list "(1,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 (iVar2 == 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 == &extra_name.field_2) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;\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  }\n  else {\n    pSVar4 = (directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_start;\n    if (pSVar4 != (directories->\n                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                  )._M_impl._M_finish) {\n      do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);\n    }\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    pcVar1 = (name->_M_dataplus)._M_p;\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length);\nLAB_001d4cac:\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 != &extra_name.field_2) {\n      operator_delete(extra_name._M_dataplus._M_p);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 == &extra_name.field_2) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;\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  }" { (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 == &extra_name.field_2) {\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;\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 == &extra_name.field_2)" ( (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 == &extra_name.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         *)extra_name._M_dataplus._M_p == &extra_name.field_2" (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))) == (pointer_expression "&extra_name.field_2" & (field_expression "extra_name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n      (__return_storage_ptr__->field_2)._M_allocated_capacity =\n           extra_name.field_2._M_allocated_capacity;\n      *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;\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 "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;" (assignment_expression "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_" (pointer_expression "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8)" * (cast_expression "(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&__return_storage_ptr__->field_2 + 8)" ( (binary_expression "(long)&__return_storage_ptr__->field_2 + 8" (cast_expression "(long)&__return_storage_ptr__->field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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_8_" (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)) ;) }) (else_clause "else {\n    pSVar4 = (directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_start;\n    if (pSVar4 != (directories->\n                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                  )._M_impl._M_finish) {\n      do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);\n    }\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    pcVar1 = (name->_M_dataplus)._M_p;\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length);\nLAB_001d4cac:\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 != &extra_name.field_2) {\n      operator_delete(extra_name._M_dataplus._M_p);\n    }\n  }" else (compound_statement "{\n    pSVar4 = (directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_start;\n    if (pSVar4 != (directories->\n                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                  )._M_impl._M_finish) {\n      do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);\n    }\n    (__return_storage_ptr__->_M_dataplus)._M_p = (pointer)&__return_storage_ptr__->field_2;\n    pcVar1 = (name->_M_dataplus)._M_p;\n                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */\n    std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n    _M_construct<char*>(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length);\nLAB_001d4cac:\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 != &extra_name.field_2) {\n      operator_delete(extra_name._M_dataplus._M_p);\n    }\n  }" { (expression_statement "pSVar4 = (directories->\n             super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n             _M_impl._M_start;" (assignment_expression "pSVar4 = (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 (pSVar4 != (directories->\n                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                  )._M_impl._M_finish) {\n      do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);\n    }" if (parenthesized_expression "(pSVar4 != (directories->\n                  super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                  )._M_impl._M_finish)" ( (binary_expression "pSVar4 != (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>_>\n                  )" ( (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      do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);\n    }" { (do_statement "do {\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      } while ((directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4);" do (compound_statement "{\n        local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;\n        pcVar1 = (pSVar4->name_)._M_dataplus._M_p;\n                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);\n                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */\n        std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');\n                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */\n        plVar3 = (long *)std::string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);\n        full_name._M_dataplus._M_p = (pointer)*plVar3;\n        if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }\n        full_name._M_string_length = plVar3[1];\n        *(undefined1 *)(plVar3 + 2) = 0;\n        *plVar3 = (long)(plVar3 + 2);\n        plVar3[1] = 0;\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._M_dataplus._M_p);\n        }\n        iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);\n        if (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 != &full_name.field_2) {\n          operator_delete(full_name._M_dataplus._M_p);\n        }\n        pSVar4 = pSVar4 + 1;\n      }" { (expression_statement "local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2;" (assignment_expression "local_e8._M_dataplus._M_p = (pointer)&local_e8.field_2" (field_expression "local_e8._M_dataplus._M_p" (field_expression "local_e8._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&local_e8.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "local_e8.field_2" identifier . field_identifier))) ;) (expression_statement "pcVar1 = (pSVar4->name_)._M_dataplus._M_p;" (assignment_expression "pcVar1 = (pSVar4->name_)._M_dataplus._M_p" identifier = (field_expression "(pSVar4->name_)._M_dataplus._M_p" (field_expression "(pSVar4->name_)._M_dataplus" (parenthesized_expression "(pSVar4->name_)" ( (field_expression "pSVar4->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) comment (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);" 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_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length);" (binary_expression "_M_construct<char*>(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length)" ( (comma_expression "&local_e8,pcVar1,pcVar1 + (pSVar4->name_)._M_string_length" (pointer_expression "&local_e8" & identifier) , (comma_expression "pcVar1,pcVar1 + (pSVar4->name_)._M_string_length" identifier , (binary_expression "pcVar1 + (pSVar4->name_)._M_string_length" identifier + (field_expression "(pSVar4->name_)._M_string_length" (parenthesized_expression "(pSVar4->name_)" ( (field_expression "pSVar4->name_" identifier -> field_identifier) )) . field_identifier)))) ))) ;)) comment (labeled_statement "std::string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');" statement_identifier : (ERROR ":" :) (labeled_statement "string::_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');" statement_identifier : (ERROR ":" :) (expression_statement "_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/');" (call_expression "_M_replace_aux((string *)&local_e8,local_e8._M_string_length,0,1,'/')" identifier (argument_list "((string *)&local_e8,local_e8._M_string_length,0,1,'/')" ( (cast_expression "(string *)&local_e8" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_e8" & identifier)) , (field_expression "local_e8._M_string_length" identifier . field_identifier) , number_literal , number_literal , (char_literal "'/'" ' character ') ))) ;))) comment (ERROR "plVar3 = (long *)std::" (assignment_expression "plVar3 = (long *)std" identifier = (cast_expression "(long *)std" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "string::_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);" statement_identifier : (ERROR ":" :) (expression_statement "_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length);" (call_expression "_M_append\n                                   ((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length)" identifier (argument_list "((string *)&local_e8,(name->_M_dataplus)._M_p,\n                                    name->_M_string_length)" ( (cast_expression "(string *)&local_e8" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_e8" & 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)*plVar3;" (assignment_expression "full_name._M_dataplus._M_p = (pointer)*plVar3" (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)*plVar3" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) (if_statement "if ((long *)full_name._M_dataplus._M_p == plVar3 + 2) {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }\n        else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }" if (parenthesized_expression "((long *)full_name._M_dataplus._M_p == plVar3 + 2)" ( (binary_expression "(long *)full_name._M_dataplus._M_p == plVar3 + 2" (cast_expression "(long *)full_name._M_dataplus._M_p" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier)) == (binary_expression "plVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n          full_name.field_2._8_8_ = plVar3[3];\n          full_name._M_dataplus._M_p = (pointer)&full_name.field_2;\n        }" { (expression_statement "full_name.field_2._M_allocated_capacity = plVar3[2];" (assignment_expression "full_name.field_2._M_allocated_capacity = plVar3[2]" (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "full_name.field_2._8_8_ = plVar3[3];" (assignment_expression "full_name.field_2._8_8_ = plVar3[3]" (field_expression "full_name.field_2._8_8_" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "plVar3[3]" identifier [ number_literal ])) ;) (expression_statement "full_name._M_dataplus._M_p = (pointer)&full_name.field_2;" (assignment_expression "full_name._M_dataplus._M_p = (pointer)&full_name.field_2" (field_expression "full_name._M_dataplus._M_p" (field_expression "full_name._M_dataplus" identifier . field_identifier) . field_identifier) = (binary_expression "(pointer)&full_name.field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "full_name.field_2" identifier . field_identifier))) ;) }) (else_clause "else {\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }" else (compound_statement "{\n          full_name.field_2._M_allocated_capacity = plVar3[2];\n        }" { (expression_statement "full_name.field_2._M_allocated_capacity = plVar3[2];" (assignment_expression "full_name.field_2._M_allocated_capacity = plVar3[2]" (field_expression "full_name.field_2._M_allocated_capacity" (field_expression "full_name.field_2" identifier . field_identifier) . field_identifier) = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) }))) (expression_statement "full_name._M_string_length = plVar3[1];" (assignment_expression "full_name._M_string_length = plVar3[1]" (field_expression "full_name._M_string_length" identifier . field_identifier) = (subscript_expression "plVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(plVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar3 + 2)" * (cast_expression "(undefined1 *)(plVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar3 = (long)(plVar3 + 2);" (assignment_expression "*plVar3 = (long)(plVar3 + 2)" (pointer_expression "*plVar3" * identifier) = (cast_expression "(long)(plVar3 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar3[1] = 0;" (assignment_expression "plVar3[1] = 0" (subscript_expression "plVar3[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_e8._M_dataplus._M_p != &local_e8.field_2) {\n          operator_delete(local_e8._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_e8._M_dataplus._M_p != &local_e8.field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p != &local_e8.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_e8._M_dataplus._M_p != &local_e8.field_2" (binary_expression "allocator<char>_>_9\n             *)local_e8._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)local_e8._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_e8._M_dataplus._M_p" (field_expression "local_e8._M_dataplus" identifier . field_identifier) . field_identifier))) != (pointer_expression "&local_e8.field_2" & (field_expression "local_e8.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n          operator_delete(local_e8._M_dataplus._M_p);\n        }" { (expression_statement "operator_delete(local_e8._M_dataplus._M_p);" (call_expression "operator_delete(local_e8._M_dataplus._M_p)" identifier (argument_list "(local_e8._M_dataplus._M_p)" ( (field_expression "local_e8._M_dataplus._M_p" (field_expression "local_e8._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) })) (expression_statement "iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf);" (assignment_expression "iVar2 = __xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf)" identifier = (call_expression "__xstat64(1,full_name._M_dataplus._M_p,(stat64 *)&buf)" identifier (argument_list "(1,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 (iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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_001d4cac;\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 == &full_name.field_2) {\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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 == &full_name.field_2)" ( (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 == &full_name.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               *)full_name._M_dataplus._M_p == &full_name.field_2" (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))) == (pointer_expression "&full_name.field_2" & (field_expression "full_name.field_2" identifier . field_identifier))) )) )) (compound_statement "{\n            (__return_storage_ptr__->field_2)._M_allocated_capacity =\n                 full_name.field_2._M_allocated_capacity;\n            *(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;\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 "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;" (assignment_expression "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_" (pointer_expression "*(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8)" * (cast_expression "(undefined8 *)((long)&__return_storage_ptr__->field_2 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&__return_storage_ptr__->field_2 + 8)" ( (binary_expression "(long)&__return_storage_ptr__->field_2 + 8" (cast_expression "(long)&__return_storage_ptr__->field_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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_8_" (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_001d4cac;" 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 != &full_name.field_2) {\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 != &full_name.field_2)" ( (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 != &full_name.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             *)full_name._M_dataplus._M_p != &full_name.field_2" (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))) != (pointer_expression "&full_name.field_2" & (field_expression "full_name.field_2" identifier . field_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 "pSVar4 = pSVar4 + 1;" (assignment_expression "pSVar4 = pSVar4 + 1" identifier = (binary_expression "pSVar4 + 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 != pSVar4)" ( (binary_expression "(directories->\n               super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n               _M_impl._M_finish != pSVar4" (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 "pcVar1 = (name->_M_dataplus)._M_p;" (assignment_expression "pcVar1 = (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__,pcVar1,pcVar1 + name->_M_string_length);" 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__,pcVar1,pcVar1 + name->_M_string_length);" (binary_expression "_M_construct<char*>(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length)" (binary_expression "_M_construct<char" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length)" ( (comma_expression "__return_storage_ptr__,pcVar1,pcVar1 + name->_M_string_length" identifier , (comma_expression "pcVar1,pcVar1 + name->_M_string_length" identifier , (binary_expression "pcVar1 + name->_M_string_length" identifier + (field_expression "name->_M_string_length" identifier -> field_identifier)))) ))) ;)) (labeled_statement "LAB_001d4cac:\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 != &extra_name.field_2) {\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 != &extra_name.field_2) {\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 != &extra_name.field_2)" ( (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 != &extra_name.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         *)extra_name._M_dataplus._M_p != &extra_name.field_2" (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))) != (pointer_expression "&extra_name.field_2" & (field_expression "extra_name.field_2" identifier . field_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 "long * FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    \n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    \n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}\n\n" (function_definition "long * FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    \n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    \n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}" (sized_type_specifier "long" long) (pointer_declarator "* FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)" * (function_declarator "FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)" identifier (parameter_list "(long *param_1,long *param_2,long *param_3,long *param_4)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "long *param_4" (sized_type_specifier "long" long) (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    \n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    \n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "long *plVar3;" (sized_type_specifier "long" long) (pointer_declarator "*plVar3" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "long *local_128;" (sized_type_specifier "long" long) (pointer_declarator "*local_128" * identifier) ;) (declaration "long local_118;" (sized_type_specifier "long" long) identifier ;) (declaration "long lStack_110;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_108;" (sized_type_specifier "long" long) (pointer_declarator "*local_108" * identifier) ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_f8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lStack_f0;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "undefined8 local_e0;" type_identifier identifier ;) (declaration "undefined1 local_d8 [16];" type_identifier (array_declarator "local_d8 [16]" identifier [ number_literal ]) ;) (declaration "stat64 local_c8;" type_identifier identifier ;) (expression_statement "local_c8.st_dev = (__dev_t)&local_c8.st_nlink;" (assignment_expression "local_c8.st_dev = (__dev_t)&local_c8.st_nlink" (field_expression "local_c8.st_dev" identifier . field_identifier) = (binary_expression "(__dev_t)&local_c8.st_nlink" (parenthesized_expression "(__dev_t)" ( identifier )) & (field_expression "local_c8.st_nlink" identifier . field_identifier))) ;) (expression_statement "FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);" (call_expression "FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4)" identifier (argument_list "(&local_c8,*param_4,param_4[1] + *param_4)" ( (pointer_expression "&local_c8" & 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)) ))) ;) (expression_statement "FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);" (call_expression "FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f)" identifier (argument_list "(&local_c8,local_c8.st_ino,0,1,0x2f)" ( (pointer_expression "&local_c8" & identifier) , (field_expression "local_c8.st_ino" identifier . field_identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);" (assignment_expression "plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1])" identifier = (cast_expression "(long *)FUN_00340cd0(&local_c8,*param_2,param_2[1])" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00340cd0(&local_c8,*param_2,param_2[1])" identifier (argument_list "(&local_c8,*param_2,param_2[1])" ( (pointer_expression "&local_c8" & identifier) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_128 = &local_118;" (assignment_expression "local_128 = &local_118" identifier = (pointer_expression "&local_118" & identifier)) ;) (if_statement "if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" if (parenthesized_expression "((long *)*plVar3 == plVar3 + 2)" ( (binary_expression "(long *)*plVar3 == plVar3 + 2" (cast_expression "(long *)*plVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier)) == (binary_expression "plVar3 + 2" identifier + number_literal)) )) (compound_statement "{\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }" { (expression_statement "local_118 = plVar3[2];" (assignment_expression "local_118 = plVar3[2]" identifier = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "lStack_110 = plVar3[3];" (assignment_expression "lStack_110 = plVar3[3]" identifier = (subscript_expression "plVar3[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" else (compound_statement "{\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" { (expression_statement "local_118 = plVar3[2];" (assignment_expression "local_118 = plVar3[2]" identifier = (subscript_expression "plVar3[2]" identifier [ number_literal ])) ;) (expression_statement "local_128 = (long *)*plVar3;" (assignment_expression "local_128 = (long *)*plVar3" identifier = (cast_expression "(long *)*plVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar3" * identifier))) ;) }))) (expression_statement "lVar1 = plVar3[1];" (assignment_expression "lVar1 = plVar3[1]" identifier = (subscript_expression "plVar3[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(plVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar3 + 2)" * (cast_expression "(undefined1 *)(plVar3 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar3 = (long)(plVar3 + 2);" (assignment_expression "*plVar3 = (long)(plVar3 + 2)" (pointer_expression "*plVar3" * identifier) = (cast_expression "(long)(plVar3 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar3 + 2)" ( (binary_expression "plVar3 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar3[1] = 0;" (assignment_expression "plVar3[1] = 0" (subscript_expression "plVar3[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }" if (parenthesized_expression "((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink)" ( (binary_expression "(__nlink_t *)local_c8.st_dev != &local_c8.st_nlink" (cast_expression "(__nlink_t *)local_c8.st_dev" ( (type_descriptor "__nlink_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_c8.st_dev" identifier . field_identifier)) != (pointer_expression "&local_c8.st_nlink" & (field_expression "local_c8.st_nlink" identifier . field_identifier))) )) (compound_statement "{\n    FUN_00338a50();\n  }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = __xstat64(1,(char *)local_128,&local_c8);" (assignment_expression "iVar2 = __xstat64(1,(char *)local_128,&local_c8)" identifier = (call_expression "__xstat64(1,(char *)local_128,&local_c8)" identifier (argument_list "(1,(char *)local_128,&local_c8)" ( number_literal , (cast_expression "(char *)local_128" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }" { (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" if (parenthesized_expression "(local_128 == &local_118)" ( (binary_expression "local_128 == &local_118" identifier == (pointer_expression "&local_118" & identifier)) )) (compound_statement "{\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }" { (expression_statement "param_1[2] = local_118;" (assignment_expression "param_1[2] = local_118" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = lStack_110;" (assignment_expression "param_1[3] = lStack_110" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" else (compound_statement "{\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" { (expression_statement "*param_1 = (long)local_128;" (assignment_expression "*param_1 = (long)local_128" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)local_128" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_118;" (assignment_expression "param_1[2] = local_118" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = lVar1;" (assignment_expression "param_1[1] = lVar1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" else (compound_statement "{\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" { (expression_statement "plVar3 = (long *)*param_3;" (assignment_expression "plVar3 = (long *)*param_3" identifier = (cast_expression "(long *)*param_3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (if_statement "if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }" if (parenthesized_expression "(plVar3 != (long *)param_3[1])" ( (binary_expression "plVar3 != (long *)param_3[1]" identifier != (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }" { (do_statement "do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);" do (compound_statement "{\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      }" { (expression_statement "local_e8 = local_d8;" (assignment_expression "local_e8 = local_d8" identifier = identifier) ;) (expression_statement "FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);" (call_expression "FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3)" identifier (argument_list "(&local_e8,*plVar3,plVar3[1] + *plVar3)" ( (pointer_expression "&local_e8" & identifier) , (pointer_expression "*plVar3" * identifier) , (binary_expression "plVar3[1] + *plVar3" (subscript_expression "plVar3[1]" identifier [ number_literal ]) + (pointer_expression "*plVar3" * identifier)) ))) ;) (expression_statement "FUN_003400e0(&local_e8,local_e0,0,1,0x2f);" (call_expression "FUN_003400e0(&local_e8,local_e0,0,1,0x2f)" identifier (argument_list "(&local_e8,local_e0,0,1,0x2f)" ( (pointer_expression "&local_e8" & identifier) , identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);" (assignment_expression "plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1])" identifier = (cast_expression "(long *)FUN_00340cd0(&local_e8,*param_2,param_2[1])" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00340cd0(&local_e8,*param_2,param_2[1])" identifier (argument_list "(&local_e8,*param_2,param_2[1])" ( (pointer_expression "&local_e8" & identifier) , (pointer_expression "*param_2" * identifier) , (subscript_expression "param_2[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "local_108 = (long *)*plVar4;" (assignment_expression "local_108 = (long *)*plVar4" identifier = (cast_expression "(long *)*plVar4" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar4" * identifier))) ;) (if_statement "if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }" if (parenthesized_expression "(local_108 == plVar4 + 2)" ( (binary_expression "local_108 == plVar4 + 2" identifier == (binary_expression "plVar4 + 2" identifier + number_literal)) )) (compound_statement "{\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }" { (expression_statement "local_f8 = plVar4[2];" (assignment_expression "local_f8 = plVar4[2]" identifier = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) (expression_statement "lStack_f0 = plVar4[3];" (assignment_expression "lStack_f0 = plVar4[3]" identifier = (subscript_expression "plVar4[3]" identifier [ number_literal ])) ;) (expression_statement "local_108 = &local_f8;" (assignment_expression "local_108 = &local_f8" identifier = (pointer_expression "&local_f8" & identifier)) ;) }) (else_clause "else {\n          local_f8 = plVar4[2];\n        }" else (compound_statement "{\n          local_f8 = plVar4[2];\n        }" { (expression_statement "local_f8 = plVar4[2];" (assignment_expression "local_f8 = plVar4[2]" identifier = (subscript_expression "plVar4[2]" identifier [ number_literal ])) ;) }))) (expression_statement "local_100 = plVar4[1];" (assignment_expression "local_100 = plVar4[1]" identifier = (subscript_expression "plVar4[1]" identifier [ number_literal ])) ;) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" * (cast_expression "(undefined1 *)(plVar4 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" * identifier) = (cast_expression "(long)(plVar4 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar4 + 2)" ( (binary_expression "plVar4 + 2" identifier + number_literal) )))) ;) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }" if (parenthesized_expression "(local_e8 != local_d8)" ( (binary_expression "local_e8 != local_d8" identifier != identifier) )) (compound_statement "{\n          FUN_00338a50();\n        }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = __xstat64(1,(char *)local_108,&local_c8);" (assignment_expression "iVar2 = __xstat64(1,(char *)local_108,&local_c8)" identifier = (call_expression "__xstat64(1,(char *)local_108,&local_c8)" identifier (argument_list "(1,(char *)local_108,&local_c8)" ( number_literal , (cast_expression "(char *)local_108" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&local_c8" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }" { (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (if_statement "if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" if (parenthesized_expression "(local_108 == &local_f8)" ( (binary_expression "local_108 == &local_f8" identifier == (pointer_expression "&local_f8" & identifier)) )) (compound_statement "{\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }" { (expression_statement "param_1[2] = local_f8;" (assignment_expression "param_1[2] = local_f8" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = lStack_f0;" (assignment_expression "param_1[3] = lStack_f0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" else (compound_statement "{\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" { (expression_statement "*param_1 = (long)local_108;" (assignment_expression "*param_1 = (long)local_108" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)local_108" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "param_1[2] = local_f8;" (assignment_expression "param_1[2] = local_f8" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "param_1[1] = local_100;" (assignment_expression "param_1[1] = local_100" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_001d4cac;" goto statement_identifier ;) })) (if_statement "if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }" if (parenthesized_expression "(local_108 != &local_f8)" ( (binary_expression "local_108 != &local_f8" identifier != (pointer_expression "&local_f8" & identifier)) )) (compound_statement "{\n          FUN_00338a50();\n        }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "plVar3 = plVar3 + 5;" (assignment_expression "plVar3 = plVar3 + 5" identifier = (binary_expression "plVar3 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "((long *)param_3[1] != plVar3)" ( (binary_expression "(long *)param_3[1] != plVar3" (cast_expression "(long *)param_3[1]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ])) != identifier) )) ;) })) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" * identifier) = (cast_expression "(long)(param_1 + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) )))) ;) (expression_statement "FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);" (call_expression "FUN_001caae0(param_1,*param_2,param_2[1] + *param_2)" identifier (argument_list "(param_1,*param_2,param_2[1] + *param_2)" ( 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)) ))) ;) (labeled_statement "LAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }" statement_identifier : (if_statement "if (local_128 != &local_118) {\n      FUN_00338a50();\n    }" if (parenthesized_expression "(local_128 != &local_118)" ( (binary_expression "local_128 != &local_118" identifier != (pointer_expression "&local_118" & identifier)) )) (compound_statement "{\n      FUN_00338a50();\n    }" { (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" identifier (argument_list "()" ( ))) ;) }))) }))) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition (sized_type_specifier long) (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) )))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (parenthesized_expression ( IDENT )) & (field_expression IDENT . field_identifier))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (field_expression IDENT . field_identifier) , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT . field_identifier)) != (pointer_expression & (field_expression IDENT . field_identifier))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (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)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (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 = (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 (sized_type_specifier long)) ) (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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) }))) (return_statement return IDENT ;) })))
(function_definition "long * FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)\n\n{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    \n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    \n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}" (sized_type_specifier "long" (long "long")) (pointer_declarator "* FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)" (* "*") (function_declarator "FUN_001d4a60(long *param_1,long *param_2,long *param_3,long *param_4)" (identifier "FUN_001d4a60") (parameter_list "(long *param_1,long *param_2,long *param_3,long *param_4)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "long *param_4" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  long *plVar3;\n  long *plVar4;\n  long *local_128;\n  long local_118;\n  long lStack_110;\n  long *local_108;\n  long local_100;\n  long local_f8;\n  long lStack_f0;\n  undefined1 *local_e8;\n  undefined8 local_e0;\n  undefined1 local_d8 [16];\n  stat64 local_c8;\n  \n  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;\n  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);\n                    \n  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);\n                    \n  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);\n  local_128 = &local_118;\n  if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }\n  lVar1 = plVar3[1];\n  *(undefined1 *)(plVar3 + 2) = 0;\n  *plVar3 = (long)(plVar3 + 2);\n  plVar3[1] = 0;\n  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }\n  iVar2 = __xstat64(1,(char *)local_128,&local_c8);\n  if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }\n  return param_1;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "long *plVar3;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar3" (* "*") (identifier "plVar3")) (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "long *local_128;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_128" (* "*") (identifier "local_128")) (; ";")) (declaration "long local_118;" (sized_type_specifier "long" (long "long")) (identifier "local_118") (; ";")) (declaration "long lStack_110;" (sized_type_specifier "long" (long "long")) (identifier "lStack_110") (; ";")) (declaration "long *local_108;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_108" (* "*") (identifier "local_108")) (; ";")) (declaration "long local_100;" (sized_type_specifier "long" (long "long")) (identifier "local_100") (; ";")) (declaration "long local_f8;" (sized_type_specifier "long" (long "long")) (identifier "local_f8") (; ";")) (declaration "long lStack_f0;" (sized_type_specifier "long" (long "long")) (identifier "lStack_f0") (; ";")) (declaration "undefined1 *local_e8;" (type_identifier "undefined1") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "undefined8 local_e0;" (type_identifier "undefined8") (identifier "local_e0") (; ";")) (declaration "undefined1 local_d8 [16];" (type_identifier "undefined1") (array_declarator "local_d8 [16]" (identifier "local_d8") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "stat64 local_c8;" (type_identifier "stat64") (identifier "local_c8") (; ";")) (expression_statement "local_c8.st_dev = (__dev_t)&local_c8.st_nlink;" (assignment_expression "local_c8.st_dev = (__dev_t)&local_c8.st_nlink" (field_expression "local_c8.st_dev" (identifier "local_c8") (. ".") (field_identifier "st_dev")) (= "=") (binary_expression "(__dev_t)&local_c8.st_nlink" (parenthesized_expression "(__dev_t)" (( "(") (identifier "__dev_t") () ")")) (& "&") (field_expression "local_c8.st_nlink" (identifier "local_c8") (. ".") (field_identifier "st_nlink")))) (; ";")) (expression_statement "FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);" (call_expression "FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4)" (identifier "FUN_001caae0") (argument_list "(&local_c8,*param_4,param_4[1] + *param_4)" (( "(") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) (, ",") (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"))) () ")"))) (; ";")) (expression_statement "FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);" (call_expression "FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f)" (identifier "FUN_003400e0") (argument_list "(&local_c8,local_c8.st_ino,0,1,0x2f)" (( "(") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) (, ",") (field_expression "local_c8.st_ino" (identifier "local_c8") (. ".") (field_identifier "st_ino")) (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x2f") () ")"))) (; ";")) (expression_statement "plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);" (assignment_expression "plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1])" (identifier "plVar3") (= "=") (cast_expression "(long *)FUN_00340cd0(&local_c8,*param_2,param_2[1])" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00340cd0(&local_c8,*param_2,param_2[1])" (identifier "FUN_00340cd0") (argument_list "(&local_c8,*param_2,param_2[1])" (( "(") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "local_128 = &local_118;" (assignment_expression "local_128 = &local_118" (identifier "local_128") (= "=") (pointer_expression "&local_118" (& "&") (identifier "local_118"))) (; ";")) (if_statement "if ((long *)*plVar3 == plVar3 + 2) {\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }\n  else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" (if "if") (parenthesized_expression "((long *)*plVar3 == plVar3 + 2)" (( "(") (binary_expression "(long *)*plVar3 == plVar3 + 2" (cast_expression "(long *)*plVar3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar3" (* "*") (identifier "plVar3"))) (== "==") (binary_expression "plVar3 + 2" (identifier "plVar3") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n    local_118 = plVar3[2];\n    lStack_110 = plVar3[3];\n  }" ({ "{") (expression_statement "local_118 = plVar3[2];" (assignment_expression "local_118 = plVar3[2]" (identifier "local_118") (= "=") (subscript_expression "plVar3[2]" (identifier "plVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "lStack_110 = plVar3[3];" (assignment_expression "lStack_110 = plVar3[3]" (identifier "lStack_110") (= "=") (subscript_expression "plVar3[3]" (identifier "plVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" (else "else") (compound_statement "{\n    local_118 = plVar3[2];\n    local_128 = (long *)*plVar3;\n  }" ({ "{") (expression_statement "local_118 = plVar3[2];" (assignment_expression "local_118 = plVar3[2]" (identifier "local_118") (= "=") (subscript_expression "plVar3[2]" (identifier "plVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_128 = (long *)*plVar3;" (assignment_expression "local_128 = (long *)*plVar3" (identifier "local_128") (= "=") (cast_expression "(long *)*plVar3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar3" (* "*") (identifier "plVar3")))) (; ";")) (} "}")))) (expression_statement "lVar1 = plVar3[1];" (assignment_expression "lVar1 = plVar3[1]" (identifier "lVar1") (= "=") (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(plVar3 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar3 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar3 + 2)" (* "*") (cast_expression "(undefined1 *)(plVar3 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar3 + 2)" (( "(") (binary_expression "plVar3 + 2" (identifier "plVar3") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar3 = (long)(plVar3 + 2);" (assignment_expression "*plVar3 = (long)(plVar3 + 2)" (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (= "=") (cast_expression "(long)(plVar3 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar3 + 2)" (( "(") (binary_expression "plVar3 + 2" (identifier "plVar3") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "plVar3[1] = 0;" (assignment_expression "plVar3[1] = 0" (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {\n    FUN_00338a50();\n  }" (if "if") (parenthesized_expression "((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink)" (( "(") (binary_expression "(__nlink_t *)local_c8.st_dev != &local_c8.st_nlink" (cast_expression "(__nlink_t *)local_c8.st_dev" (( "(") (type_descriptor "__nlink_t *" (type_identifier "__nlink_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_c8.st_dev" (identifier "local_c8") (. ".") (field_identifier "st_dev"))) (!= "!=") (pointer_expression "&local_c8.st_nlink" (& "&") (field_expression "local_c8.st_nlink" (identifier "local_c8") (. ".") (field_identifier "st_nlink")))) () ")")) (compound_statement "{\n    FUN_00338a50();\n  }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = __xstat64(1,(char *)local_128,&local_c8);" (assignment_expression "iVar2 = __xstat64(1,(char *)local_128,&local_c8)" (identifier "iVar2") (= "=") (call_expression "__xstat64(1,(char *)local_128,&local_c8)" (identifier "__xstat64") (argument_list "(1,(char *)local_128,&local_c8)" (( "(") (number_literal "1") (, ",") (cast_expression "(char *)local_128" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_128")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }\n  else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *param_1 = (long)(param_1 + 2);\n    if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }\n    param_1[1] = lVar1;\n  }" ({ "{") (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (local_128 == &local_118) {\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }\n    else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" (if "if") (parenthesized_expression "(local_128 == &local_118)" (( "(") (binary_expression "local_128 == &local_118" (identifier "local_128") (== "==") (pointer_expression "&local_118" (& "&") (identifier "local_118"))) () ")")) (compound_statement "{\n      param_1[2] = local_118;\n      param_1[3] = lStack_110;\n    }" ({ "{") (expression_statement "param_1[2] = local_118;" (assignment_expression "param_1[2] = local_118" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_118")) (; ";")) (expression_statement "param_1[3] = lStack_110;" (assignment_expression "param_1[3] = lStack_110" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "lStack_110")) (; ";")) (} "}")) (else_clause "else {\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" (else "else") (compound_statement "{\n      *param_1 = (long)local_128;\n      param_1[2] = local_118;\n    }" ({ "{") (expression_statement "*param_1 = (long)local_128;" (assignment_expression "*param_1 = (long)local_128" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)local_128" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_128"))) (; ";")) (expression_statement "param_1[2] = local_118;" (assignment_expression "param_1[2] = local_118" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_118")) (; ";")) (} "}")))) (expression_statement "param_1[1] = lVar1;" (assignment_expression "param_1[1] = lVar1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "lVar1")) (; ";")) (} "}")) (else_clause "else {\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" (else "else") (compound_statement "{\n    plVar3 = (long *)*param_3;\n    if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }\n    *param_1 = (long)(param_1 + 2);\n                    \n    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);\nLAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }\n  }" ({ "{") (expression_statement "plVar3 = (long *)*param_3;" (assignment_expression "plVar3 = (long *)*param_3" (identifier "plVar3") (= "=") (cast_expression "(long *)*param_3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (if_statement "if (plVar3 != (long *)param_3[1]) {\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }" (if "if") (parenthesized_expression "(plVar3 != (long *)param_3[1])" (( "(") (binary_expression "plVar3 != (long *)param_3[1]" (identifier "plVar3") (!= "!=") (cast_expression "(long *)param_3[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n      do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);\n    }" ({ "{") (do_statement "do {\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      } while ((long *)param_3[1] != plVar3);" (do "do") (compound_statement "{\n        local_e8 = local_d8;\n                    \n        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);\n                    \n        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);\n                    \n        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);\n        local_108 = (long *)*plVar4;\n        if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }\n        local_100 = plVar4[1];\n        *(undefined1 *)(plVar4 + 2) = 0;\n        *plVar4 = (long)(plVar4 + 2);\n        plVar4[1] = 0;\n        if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }\n        iVar2 = __xstat64(1,(char *)local_108,&local_c8);\n        if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }\n        if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }\n        plVar3 = plVar3 + 5;\n      }" ({ "{") (expression_statement "local_e8 = local_d8;" (assignment_expression "local_e8 = local_d8" (identifier "local_e8") (= "=") (identifier "local_d8")) (; ";")) (expression_statement "FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);" (call_expression "FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3)" (identifier "FUN_001caae0") (argument_list "(&local_e8,*plVar3,plVar3[1] + *plVar3)" (( "(") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (pointer_expression "*plVar3" (* "*") (identifier "plVar3")) (, ",") (binary_expression "plVar3[1] + *plVar3" (subscript_expression "plVar3[1]" (identifier "plVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (pointer_expression "*plVar3" (* "*") (identifier "plVar3"))) () ")"))) (; ";")) (expression_statement "FUN_003400e0(&local_e8,local_e0,0,1,0x2f);" (call_expression "FUN_003400e0(&local_e8,local_e0,0,1,0x2f)" (identifier "FUN_003400e0") (argument_list "(&local_e8,local_e0,0,1,0x2f)" (( "(") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (identifier "local_e0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (number_literal "0x2f") () ")"))) (; ";")) (expression_statement "plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);" (assignment_expression "plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1])" (identifier "plVar4") (= "=") (cast_expression "(long *)FUN_00340cd0(&local_e8,*param_2,param_2[1])" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00340cd0(&local_e8,*param_2,param_2[1])" (identifier "FUN_00340cd0") (argument_list "(&local_e8,*param_2,param_2[1])" (( "(") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "local_108 = (long *)*plVar4;" (assignment_expression "local_108 = (long *)*plVar4" (identifier "local_108") (= "=") (cast_expression "(long *)*plVar4" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar4" (* "*") (identifier "plVar4")))) (; ";")) (if_statement "if (local_108 == plVar4 + 2) {\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }\n        else {\n          local_f8 = plVar4[2];\n        }" (if "if") (parenthesized_expression "(local_108 == plVar4 + 2)" (( "(") (binary_expression "local_108 == plVar4 + 2" (identifier "local_108") (== "==") (binary_expression "plVar4 + 2" (identifier "plVar4") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n          local_f8 = plVar4[2];\n          lStack_f0 = plVar4[3];\n          local_108 = &local_f8;\n        }" ({ "{") (expression_statement "local_f8 = plVar4[2];" (assignment_expression "local_f8 = plVar4[2]" (identifier "local_f8") (= "=") (subscript_expression "plVar4[2]" (identifier "plVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "lStack_f0 = plVar4[3];" (assignment_expression "lStack_f0 = plVar4[3]" (identifier "lStack_f0") (= "=") (subscript_expression "plVar4[3]" (identifier "plVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_108 = &local_f8;" (assignment_expression "local_108 = &local_f8" (identifier "local_108") (= "=") (pointer_expression "&local_f8" (& "&") (identifier "local_f8"))) (; ";")) (} "}")) (else_clause "else {\n          local_f8 = plVar4[2];\n        }" (else "else") (compound_statement "{\n          local_f8 = plVar4[2];\n        }" ({ "{") (expression_statement "local_f8 = plVar4[2];" (assignment_expression "local_f8 = plVar4[2]" (identifier "local_f8") (= "=") (subscript_expression "plVar4[2]" (identifier "plVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "local_100 = plVar4[1];" (assignment_expression "local_100 = plVar4[1]" (identifier "local_100") (= "=") (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(undefined1 *)(plVar4 + 2) = 0;" (assignment_expression "*(undefined1 *)(plVar4 + 2) = 0" (pointer_expression "*(undefined1 *)(plVar4 + 2)" (* "*") (cast_expression "(undefined1 *)(plVar4 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar4 + 2)" (( "(") (binary_expression "plVar4 + 2" (identifier "plVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*plVar4 = (long)(plVar4 + 2);" (assignment_expression "*plVar4 = (long)(plVar4 + 2)" (pointer_expression "*plVar4" (* "*") (identifier "plVar4")) (= "=") (cast_expression "(long)(plVar4 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar4 + 2)" (( "(") (binary_expression "plVar4 + 2" (identifier "plVar4") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "plVar4[1] = 0;" (assignment_expression "plVar4[1] = 0" (subscript_expression "plVar4[1]" (identifier "plVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_e8 != local_d8) {\n          FUN_00338a50();\n        }" (if "if") (parenthesized_expression "(local_e8 != local_d8)" (( "(") (binary_expression "local_e8 != local_d8" (identifier "local_e8") (!= "!=") (identifier "local_d8")) () ")")) (compound_statement "{\n          FUN_00338a50();\n        }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = __xstat64(1,(char *)local_108,&local_c8);" (assignment_expression "iVar2 = __xstat64(1,(char *)local_108,&local_c8)" (identifier "iVar2") (= "=") (call_expression "__xstat64(1,(char *)local_108,&local_c8)" (identifier "__xstat64") (argument_list "(1,(char *)local_108,&local_c8)" (( "(") (number_literal "1") (, ",") (cast_expression "(char *)local_108" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_108")) (, ",") (pointer_expression "&local_c8" (& "&") (identifier "local_c8")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *param_1 = (long)(param_1 + 2);\n          if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }\n          param_1[1] = local_100;\n          goto LAB_001d4cac;\n        }" ({ "{") (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (local_108 == &local_f8) {\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }\n          else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" (if "if") (parenthesized_expression "(local_108 == &local_f8)" (( "(") (binary_expression "local_108 == &local_f8" (identifier "local_108") (== "==") (pointer_expression "&local_f8" (& "&") (identifier "local_f8"))) () ")")) (compound_statement "{\n            param_1[2] = local_f8;\n            param_1[3] = lStack_f0;\n          }" ({ "{") (expression_statement "param_1[2] = local_f8;" (assignment_expression "param_1[2] = local_f8" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_f8")) (; ";")) (expression_statement "param_1[3] = lStack_f0;" (assignment_expression "param_1[3] = lStack_f0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "lStack_f0")) (; ";")) (} "}")) (else_clause "else {\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" (else "else") (compound_statement "{\n            *param_1 = (long)local_108;\n            param_1[2] = local_f8;\n          }" ({ "{") (expression_statement "*param_1 = (long)local_108;" (assignment_expression "*param_1 = (long)local_108" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)local_108" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_108"))) (; ";")) (expression_statement "param_1[2] = local_f8;" (assignment_expression "param_1[2] = local_f8" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_f8")) (; ";")) (} "}")))) (expression_statement "param_1[1] = local_100;" (assignment_expression "param_1[1] = local_100" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_100")) (; ";")) (goto_statement "goto LAB_001d4cac;" (goto "goto") (statement_identifier "LAB_001d4cac") (; ";")) (} "}"))) (if_statement "if (local_108 != &local_f8) {\n          FUN_00338a50();\n        }" (if "if") (parenthesized_expression "(local_108 != &local_f8)" (( "(") (binary_expression "local_108 != &local_f8" (identifier "local_108") (!= "!=") (pointer_expression "&local_f8" (& "&") (identifier "local_f8"))) () ")")) (compound_statement "{\n          FUN_00338a50();\n        }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "plVar3 = plVar3 + 5;" (assignment_expression "plVar3 = plVar3 + 5" (identifier "plVar3") (= "=") (binary_expression "plVar3 + 5" (identifier "plVar3") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((long *)param_3[1] != plVar3)" (( "(") (binary_expression "(long *)param_3[1] != plVar3" (cast_expression "(long *)param_3[1]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "plVar3")) () ")")) (; ";")) (} "}"))) (expression_statement "*param_1 = (long)(param_1 + 2);" (assignment_expression "*param_1 = (long)(param_1 + 2)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(long)(param_1 + 2)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);" (call_expression "FUN_001caae0(param_1,*param_2,param_2[1] + *param_2)" (identifier "FUN_001caae0") (argument_list "(param_1,*param_2,param_2[1] + *param_2)" (( "(") (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"))) () ")"))) (; ";")) (labeled_statement "LAB_001d4cac:\n    if (local_128 != &local_118) {\n      FUN_00338a50();\n    }" (statement_identifier "LAB_001d4cac") (: ":") (if_statement "if (local_128 != &local_118) {\n      FUN_00338a50();\n    }" (if "if") (parenthesized_expression "(local_128 != &local_118)" (( "(") (binary_expression "local_128 != &local_118" (identifier "local_128") (!= "!=") (pointer_expression "&local_118" (& "&") (identifier "local_118"))) () ")")) (compound_statement "{\n      FUN_00338a50();\n    }" ({ "{") (expression_statement "FUN_00338a50();" (call_expression "FUN_00338a50()" (identifier "FUN_00338a50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")))) (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)

{
  type_1 var_5;
  int var_11;
  long *var_8;
  type_1 var_15;
  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_4;
  type_3 buf;
  
  var_5 = (extra_search_dir->_M_dataplus)._M_p;
  buf.st_dev = (__dev_t)&buf.st_nlink;
  std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
  var_16<var_2*>((basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> *)&buf,
                      var_5,var_5 + extra_search_dir->_M_string_length);
                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */
  std::string::var_6((type_2 *)&buf,buf.st_ino,0,1,'/');
                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */
  var_8 = (long *)std::string::var_7
                             ((type_2 *)&buf,(name->_M_dataplus)._M_p,name->_M_string_length);
  extra_name._M_dataplus._M_p = (type_1)&extra_name.field_2;
  if ((long *)*var_8 == var_8 + 2) {
    extra_name.field_2._M_allocated_capacity = var_8[2];
    extra_name.field_2._8_8_ = var_8[3];
  }
  else {
    extra_name.field_2._M_allocated_capacity = var_8[2];
    extra_name._M_dataplus._M_p = (type_1)*var_8;
  }
  extra_name._M_string_length = var_8[1];
  *(type_4 *)(var_8 + 2) = 0;
  *var_8 = (long)(var_8 + 2);
  var_8[1] = 0;
  if ((type_5 *)buf.st_dev != &buf.st_nlink) {
    var_9((void *)buf.st_dev);
  }
  var_11 = var_10(1,extra_name._M_dataplus._M_p,(type_6 *)&buf);
  if (var_11 == 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_12
         *)extra_name._M_dataplus._M_p == &extra_name.field_2) {
      (__return_storage_ptr__->field_2)._M_allocated_capacity =
           extra_name.field_2._M_allocated_capacity;
      *(type_7 *)((long)&__return_storage_ptr__->field_2 + 8) = extra_name.field_2._8_8_;
    }
    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;
  }
  else {
    var_15 = (directories->
             super__Vector_base<gold::var_13,_std::var_1<gold::var_13>var_3>var_14).
             _M_impl._M_start;
    if (var_15 != (directories->
                  super__Vector_base<gold::var_13,_std::var_1<gold::var_13>var_3>var_14
                  )._M_impl._M_finish) {
      do {
        var_4._M_dataplus._M_p = (type_1)&var_4.field_2;
        var_5 = (var_15->name_)._M_dataplus._M_p;
                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */
        std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
        var_16<var_2*>(&var_4,var_5,var_5 + (var_15->name_)._M_string_length);
                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */
        std::string::var_6((type_2 *)&var_4,var_4._M_string_length,0,1,'/');
                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */
        var_8 = (long *)std::string::var_7
                                   ((type_2 *)&var_4,(name->_M_dataplus)._M_p,
                                    name->_M_string_length);
        full_name._M_dataplus._M_p = (type_1)*var_8;
        if ((long *)full_name._M_dataplus._M_p == var_8 + 2) {
          full_name.field_2._M_allocated_capacity = var_8[2];
          full_name.field_2._8_8_ = var_8[3];
          full_name._M_dataplus._M_p = (type_1)&full_name.field_2;
        }
        else {
          full_name.field_2._M_allocated_capacity = var_8[2];
        }
        full_name._M_string_length = var_8[1];
        *(type_4 *)(var_8 + 2) = 0;
        *var_8 = (long)(var_8 + 2);
        var_8[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_12
             *)var_4._M_dataplus._M_p != &var_4.field_2) {
          var_9(var_4._M_dataplus._M_p);
        }
        var_11 = var_10(1,full_name._M_dataplus._M_p,(type_6 *)&buf);
        if (var_11 == 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_12
               *)full_name._M_dataplus._M_p == &full_name.field_2) {
            (__return_storage_ptr__->field_2)._M_allocated_capacity =
                 full_name.field_2._M_allocated_capacity;
            *(type_7 *)((long)&__return_storage_ptr__->field_2 + 8) = full_name.field_2._8_8_;
          }
          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_001d4cac;
        }
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_12
             *)full_name._M_dataplus._M_p != &full_name.field_2) {
          var_9(full_name._M_dataplus._M_p);
        }
        var_15 = var_15 + 1;
      } while ((directories->
               super__Vector_base<gold::var_13,_std::var_1<gold::var_13>var_3>var_14).
               _M_impl._M_finish != var_15);
    }
    (__return_storage_ptr__->_M_dataplus)._M_p = (type_1)&__return_storage_ptr__->field_2;
    var_5 = (name->_M_dataplus)._M_p;
                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */
    std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
    var_16<var_2*>(__return_storage_ptr__,var_5,var_5 + name->_M_string_length);
LAB_001d4cac:
    if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_12
         *)extra_name._M_dataplus._M_p != &extra_name.field_2) {
      var_9(extra_name._M_dataplus._M_p);
    }
  }
  return __return_storage_ptr__;
}


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

long * MASKED(long *param_1,long *param_2,long *param_3,long *param_4)

{
  long lVar1;
  int iVar2;
  long *plVar3;
  long *plVar4;
  long *local_128;
  long local_118;
  long lStack_110;
  long *local_108;
  long local_100;
  long local_f8;
  long lStack_f0;
  undefined1 *local_e8;
  undefined8 local_e0;
  undefined1 local_d8 [16];
  stat64 local_c8;
  
  local_c8.st_dev = (__dev_t)&local_c8.st_nlink;
  FUN_001caae0(&local_c8,*param_4,param_4[1] + *param_4);
                    /* try { // try from 001d4ab0 to 001d4ab4 has its CatchHandler @ 001d4d54 */
  FUN_003400e0(&local_c8,local_c8.st_ino,0,1,0x2f);
                    /* try { // try from 001d4ac1 to 001d4ac5 has its CatchHandler @ 001d4d44 */
  plVar3 = (long *)FUN_00340cd0(&local_c8,*param_2,param_2[1]);
  local_128 = &local_118;
  if ((long *)*plVar3 == plVar3 + 2) {
    local_118 = plVar3[2];
    lStack_110 = plVar3[3];
  }
  else {
    local_118 = plVar3[2];
    local_128 = (long *)*plVar3;
  }
  lVar1 = plVar3[1];
  *(undefined1 *)(plVar3 + 2) = 0;
  *plVar3 = (long)(plVar3 + 2);
  plVar3[1] = 0;
  if ((__nlink_t *)local_c8.st_dev != &local_c8.st_nlink) {
    FUN_00338a50();
  }
  iVar2 = __xstat64(1,(char *)local_128,&local_c8);
  if (iVar2 == 0) {
    *param_1 = (long)(param_1 + 2);
    if (local_128 == &local_118) {
      param_1[2] = local_118;
      param_1[3] = lStack_110;
    }
    else {
      *param_1 = (long)local_128;
      param_1[2] = local_118;
    }
    param_1[1] = lVar1;
  }
  else {
    plVar3 = (long *)*param_3;
    if (plVar3 != (long *)param_3[1]) {
      do {
        local_e8 = local_d8;
                    /* try { // try from 001d4c36 to 001d4c3a has its CatchHandler @ 001d4d4c */
        FUN_001caae0(&local_e8,*plVar3,plVar3[1] + *plVar3);
                    /* try { // try from 001d4c50 to 001d4c54 has its CatchHandler @ 001d4d5c */
        FUN_003400e0(&local_e8,local_e0,0,1,0x2f);
                    /* try { // try from 001d4c61 to 001d4c65 has its CatchHandler @ 001d4d3c */
        plVar4 = (long *)FUN_00340cd0(&local_e8,*param_2,param_2[1]);
        local_108 = (long *)*plVar4;
        if (local_108 == plVar4 + 2) {
          local_f8 = plVar4[2];
          lStack_f0 = plVar4[3];
          local_108 = &local_f8;
        }
        else {
          local_f8 = plVar4[2];
        }
        local_100 = plVar4[1];
        *(undefined1 *)(plVar4 + 2) = 0;
        *plVar4 = (long)(plVar4 + 2);
        plVar4[1] = 0;
        if (local_e8 != local_d8) {
          FUN_00338a50();
        }
        iVar2 = __xstat64(1,(char *)local_108,&local_c8);
        if (iVar2 == 0) {
          *param_1 = (long)(param_1 + 2);
          if (local_108 == &local_f8) {
            param_1[2] = local_f8;
            param_1[3] = lStack_f0;
          }
          else {
            *param_1 = (long)local_108;
            param_1[2] = local_f8;
          }
          param_1[1] = local_100;
          goto LAB_001d4cac;
        }
        if (local_108 != &local_f8) {
          FUN_00338a50();
        }
        plVar3 = plVar3 + 5;
      } while ((long *)param_3[1] != plVar3);
    }
    *param_1 = (long)(param_1 + 2);
                    /* try { // try from 001d4ca7 to 001d4cab has its CatchHandler @ 001d4d4c */
    FUN_001caae0(param_1,*param_2,param_2[1] + *param_2);
LAB_001d4cac:
    if (local_128 != &local_118) {
      FUN_00338a50();
    }
  }
  return param_1;
}

