
/* DWARF original prototype: void run(Dir_cache_task * this, Workqueue * param_1) */

void __thiscall
anon_unknown.dwarf_4b7067::Dir_cache_task::run(Dir_cache_task *this,Workqueue *param_1)

{
  _Hash_node_base *p_Var1;
  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
  *paVar2;
  size_type *psVar3;
  _Hash_node_base *__name;
  _Hash_node_base *p_Var4;
  Lock_impl *pLVar5;
  __bucket_type *pp_Var6;
  Dir_caches *pDVar7;
  char cVar8;
  int iVar9;
  _func_int_varargs *p_Var10;
  _Hash_node_base *p_Var11;
  DIR *__dirp;
  dirent64 *pdVar12;
  size_t sVar13;
  _Hash_node_base *p_Var14;
  __node_base *p_Var15;
  _Hash_node_base *p_Var16;
  _Hash_node_base *p_Var17;
  _Hash_node_base *p_Var18;
  char *format;
  __bucket_type *pp_Var19;
  int *piVar20;
  char *pcVar21;
  _Hash_node_base *p_Var22;
  ulong uVar23;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *this_00;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *this_01;
  ulong uVar24;
  __bucket_type p_Var25;
  __bucket_type p_Var26;
  ulong local_90;
  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_58;
  
  pDVar7 = caches;
  __name = (_Hash_node_base *)this->dir_;
  (*((caches->lock_).lock_)->_vptr_Lock_impl[2])();
  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;
  uVar23 = (ulong)__name % uVar24;
  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];
  if (p_Var26 != (__bucket_type)0x0) {
    p_Var16 = p_Var26->_M_nxt[1]._M_nxt;
    p_Var11 = p_Var26->_M_nxt;
    do {
      p_Var25 = p_Var11;
      if (__name == p_Var16) {
        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];
        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&
           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {
          (*p_Var10)();
          return;
        }
        goto LAB_0018445b;
      }
      p_Var11 = p_Var25->_M_nxt;
    } while ((p_Var11 != (_Hash_node_base *)0x0) &&
            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));
  }
  p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];
LAB_0018445b:
  (*p_Var10)();
  p_Var11 = (_Hash_node_base *)operator_new(0x40);
  p_Var11->_M_nxt = __name;
  p_Var16 = p_Var11 + 7;
  *(undefined1 (*) [16])(p_Var11 + 5) = (undefined1  [16])0x0;
  p_Var16->_M_nxt = (_Hash_node_base *)0x0;
  p_Var11[1]._M_nxt = p_Var16;
  p_Var11[2]._M_nxt = (_Hash_node_base *)0x1;
  p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;
  p_Var11[4]._M_nxt = (_Hash_node_base *)0x0;
  *(undefined4 *)&p_Var11[5]._M_nxt = 0x3f800000;
  p_Var11[6]._M_nxt = (_Hash_node_base *)0x0;
  __dirp = opendir((char *)__name);
  if (__dirp == (DIR *)0x0) {
    piVar20 = __errno_location();
    iVar9 = *piVar20;
    if ((iVar9 != 2) && (iVar9 != 0x14)) {
      pcVar21 = strerror(iVar9);
      p_Var16 = p_Var11->_M_nxt;
      format = (char *)gettext("%s: can not read directory: %s");
      gold::gold_error(format,p_Var16,pcVar21);
    }
  }
  else {
    paVar2 = &local_58.field_2;
LAB_001844e2:
    pdVar12 = readdir64(__dirp);
    if (pdVar12 != (dirent64 *)0x0) {
      do {
        pcVar21 = pdVar12->d_name;
        local_58._M_dataplus._M_p = (pointer)paVar2;
        sVar13 = strlen(pcVar21);
        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);
        p_Var14 = (_Hash_node_base *)
                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);
        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;
        p_Var15 = std::
                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                  ::_M_find_before_node
                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>
                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);
        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {
                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */
          p_Var17 = (_Hash_node_base *)operator_new(0x30);
          p_Var17->_M_nxt = (_Hash_node_base *)0x0;
          p_Var17[1]._M_nxt = p_Var17 + 3;
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)local_58._M_dataplus._M_p == paVar2) {
            p_Var17[3]._M_nxt =
                 (_Hash_node_base *)
                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,
                          local_58.field_2._M_local_buf[0]);
            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;
          }
          else {
            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;
            p_Var17[3]._M_nxt =
                 (_Hash_node_base *)
                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,
                          local_58.field_2._M_local_buf[0]);
          }
          p_Var18 = p_Var11[4]._M_nxt;
          p_Var22 = p_Var11[2]._M_nxt;
          local_58.field_2._M_local_buf[0] = '\0';
          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;
          local_58._M_string_length = 0;
          local_58._M_dataplus._M_p = (pointer)paVar2;
          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash
                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);
          if (cVar8 == '\0') {
            p_Var18 = p_Var11[1]._M_nxt;
          }
          else {
            if (this_00 ==
                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                 *)0x1) {
              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;
              p_Var18 = p_Var16;
            }
            else {
                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */
              p_Var18 = (_Hash_node_base *)
                        std::__detail::
                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);
            }
            p_Var22 = p_Var11[3]._M_nxt;
            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;
            if (p_Var22 != (_Hash_node_base *)0x0) {
              uVar24 = 0;
              do {
                while( true ) {
                  p_Var4 = p_Var22->_M_nxt;
                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;
                  p_Var1 = p_Var18 + uVar23;
                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;
                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;
                  p_Var1->_M_nxt->_M_nxt = p_Var22;
                  uVar23 = uVar24;
LAB_0018471c:
                  p_Var22 = p_Var4;
                  uVar24 = uVar23;
                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;
                }
                p_Var22->_M_nxt = p_Var11[3]._M_nxt;
                p_Var11[3]._M_nxt = p_Var22;
                p_Var1->_M_nxt = p_Var11 + 3;
                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;
                p_Var18[uVar24]._M_nxt = p_Var22;
                p_Var22 = p_Var4;
                uVar24 = uVar23;
              } while (p_Var4 != (_Hash_node_base *)0x0);
            }
LAB_00184768:
            if (p_Var16 != p_Var11[1]._M_nxt) {
              operator_delete(p_Var11[1]._M_nxt);
            }
            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;
            p_Var11[1]._M_nxt = p_Var18;
            local_90 = (ulong)p_Var14 % (ulong)this_00;
          }
          p_Var17[5]._M_nxt = p_Var14;
          p_Var14 = p_Var18 + local_90;
          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {
            p_Var22 = p_Var11[3]._M_nxt;
            p_Var11[3]._M_nxt = p_Var17;
            p_Var17->_M_nxt = p_Var22;
            if (p_Var22 != (_Hash_node_base *)0x0) {
              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;
            }
            p_Var14->_M_nxt = p_Var11 + 3;
          }
          else {
            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;
            p_Var14->_M_nxt->_M_nxt = p_Var17;
          }
          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);
        }
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;
        operator_delete(local_58._M_dataplus._M_p);
        pdVar12 = readdir64(__dirp);
        if (pdVar12 == (dirent64 *)0x0) break;
      } while( true );
    }
    iVar9 = closedir(__dirp);
    if (iVar9 != 0) {
      piVar20 = __errno_location();
      pcVar21 = strerror(*piVar20);
      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);
    }
  }
  (*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])();
                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */
  p_Var16 = (_Hash_node_base *)operator_new(0x18);
  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;
  p_Var16[2]._M_nxt = p_Var11;
  p_Var16->_M_nxt = (_Hash_node_base *)0x0;
  p_Var16[1]._M_nxt = __name;
  uVar23 = (ulong)__name % uVar24;
  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];
  if (p_Var26 != (__bucket_type)0x0) {
    p_Var11 = p_Var26->_M_nxt[1]._M_nxt;
    p_Var14 = p_Var26->_M_nxt;
    while (p_Var25 = p_Var14, __name != p_Var11) {
      p_Var14 = p_Var25->_M_nxt;
      if ((p_Var14 == (_Hash_node_base *)0x0) ||
         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))
      goto LAB_00184868;
    }
    if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {
      operator_delete(p_Var16);
                    /* WARNING: Subroutine does not return */
      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");
    }
  }
LAB_00184868:
                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */
  cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash
                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,
                     (pDVar7->caches_)._M_h._M_element_count,1);
  if (cVar8 == '\0') {
    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;
  }
  else {
    if (this_01 ==
        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
         *)0x1) {
      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;
      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;
    }
    else {
                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */
      pp_Var19 = std::__detail::
                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                 ::_M_allocate_buckets(this_01,uVar24);
    }
    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;
    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;
    if (p_Var11 != (_Hash_node_base *)0x0) {
      uVar24 = 0;
      do {
        p_Var14 = p_Var11->_M_nxt;
        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;
        pp_Var6 = pp_Var19 + uVar23;
        if (*pp_Var6 == (__bucket_type)0x0) {
          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;
          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;
          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;
          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {
            pp_Var19[uVar24] = p_Var11;
          }
        }
        else {
          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;
          (*pp_Var6)->_M_nxt = p_Var11;
          uVar23 = uVar24;
        }
        p_Var11 = p_Var14;
        uVar24 = uVar23;
      } while (p_Var14 != (_Hash_node_base *)0x0);
    }
    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;
    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {
      operator_delete(pp_Var6);
    }
    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;
    uVar23 = (ulong)__name % (ulong)this_01;
    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;
  }
  if (pp_Var19[uVar23] == (__bucket_type)0x0) {
    p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;
    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;
    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;
    if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {
      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;
    }
    pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;
  }
  else {
    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;
    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;
  }
  pLVar5 = (pDVar7->lock_).lock_;
  psVar3 = &(pDVar7->caches_)._M_h._M_element_count;
  *psVar3 = *psVar3 + 1;
  (*pLVar5->_vptr_Lock_impl[3])();
  return;
}



void FUN_001843b0(long param_1)

{
  char *__name;
  undefined8 uVar1;
  long lVar2;
  undefined8 *puVar3;
  char cVar4;
  int iVar5;
  code *pcVar6;
  undefined8 *puVar7;
  DIR *__dirp;
  dirent64 *pdVar8;
  size_t sVar9;
  long *plVar10;
  long *plVar11;
  undefined8 *puVar12;
  undefined8 uVar13;
  undefined8 *puVar14;
  int *piVar15;
  char *pcVar16;
  ulong uVar17;
  ulong uVar18;
  ulong extraout_RDX;
  ulong uVar19;
  ulong extraout_RDX_00;
  long *plVar20;
  long *plVar21;
  ulong local_90;
  undefined1 *local_58;
  long local_50;
  undefined1 local_48;
  undefined7 uStack_47;
  long lStack_40;
  
  puVar3 = DAT_00458950;
  __name = *(char **)(param_1 + 0x38);
  (**(code **)(*(long *)*DAT_00458950 + 0x10))();
  uVar17 = (ulong)__name % (ulong)puVar3[2];
  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);
  if (plVar10 != (long *)0x0) {
    pcVar16 = (char *)((long *)*plVar10)[1];
    plVar11 = (long *)*plVar10;
    do {
      plVar20 = plVar11;
      if (__name == pcVar16) {
        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);
        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {
          (*pcVar6)();
          return;
        }
        goto LAB_0018445b;
      }
      plVar11 = (long *)*plVar20;
    } while ((plVar11 != (long *)0x0) &&
            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,
            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));
  }
  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);
LAB_0018445b:
  (*pcVar6)();
  puVar7 = (undefined8 *)FUN_002ee780(0x40);
  *puVar7 = __name;
  puVar14 = puVar7 + 7;
  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;
  *puVar14 = 0;
  puVar7[1] = puVar14;
  puVar7[2] = 1;
  puVar7[3] = 0;
  puVar7[4] = 0;
  *(undefined4 *)(puVar7 + 5) = 0x3f800000;
  puVar7[6] = 0;
  __dirp = opendir(__name);
  if (__dirp == (DIR *)0x0) {
    piVar15 = __errno_location();
    iVar5 = *piVar15;
    if ((iVar5 != 2) && (iVar5 != 0x14)) {
      pcVar16 = strerror(iVar5);
      uVar1 = *puVar7;
      uVar13 = gettext("%s: can not read directory: %s");
      FUN_00185680(uVar13,uVar1,pcVar16);
    }
  }
  else {
LAB_001844e2:
    pdVar8 = readdir64(__dirp);
    if (pdVar8 != (dirent64 *)0x0) {
      do {
        pcVar16 = pdVar8->d_name;
        local_58 = &local_48;
        sVar9 = strlen(pcVar16);
        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);
        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);
        local_90 = uVar17 % (ulong)puVar7[2];
        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);
        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {
                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */
          plVar10 = (long *)FUN_002ee780(0x30);
          *plVar10 = 0;
          plVar10[1] = (long)(plVar10 + 3);
          if (local_58 == &local_48) {
            plVar10[3] = CONCAT71(uStack_47,local_48);
            plVar10[4] = lStack_40;
          }
          else {
            plVar10[1] = (long)local_58;
            plVar10[3] = CONCAT71(uStack_47,local_48);
          }
          uVar1 = puVar7[4];
          uVar13 = puVar7[2];
          local_48 = 0;
          plVar10[2] = local_50;
          local_50 = 0;
          local_58 = &local_48;
          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);
          if (cVar4 == '\0') {
            puVar12 = (undefined8 *)puVar7[1];
          }
          else {
            if (extraout_RDX == 1) {
              puVar7[7] = 0;
              puVar12 = puVar14;
            }
            else {
                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */
              puVar12 = (undefined8 *)FUN_00184130();
            }
            plVar11 = (long *)puVar7[3];
            puVar7[3] = 0;
            if (plVar11 != (long *)0x0) {
              uVar18 = 0;
              do {
                while( true ) {
                  plVar21 = (long *)*plVar11;
                  uVar19 = (ulong)plVar11[5] % extraout_RDX;
                  plVar20 = puVar12 + uVar19;
                  if ((long *)*plVar20 == (long *)0x0) break;
                  *plVar11 = *(long *)*plVar20;
                  *(long **)*plVar20 = plVar11;
                  uVar19 = uVar18;
LAB_0018471c:
                  plVar11 = plVar21;
                  uVar18 = uVar19;
                  if (plVar21 == (long *)0x0) goto LAB_00184768;
                }
                *plVar11 = puVar7[3];
                puVar7[3] = plVar11;
                *plVar20 = (long)(puVar7 + 3);
                if (*plVar11 == 0) goto LAB_0018471c;
                puVar12[uVar18] = plVar11;
                plVar11 = plVar21;
                uVar18 = uVar19;
              } while (plVar21 != (long *)0x0);
            }
LAB_00184768:
            if (puVar14 != (undefined8 *)puVar7[1]) {
              FUN_002eff50();
            }
            puVar7[2] = extraout_RDX;
            puVar7[1] = puVar12;
            local_90 = uVar17 % extraout_RDX;
          }
          plVar10[5] = uVar17;
          plVar11 = puVar12 + local_90;
          if ((long *)*plVar11 == (long *)0x0) {
            lVar2 = puVar7[3];
            puVar7[3] = plVar10;
            *plVar10 = lVar2;
            if (lVar2 != 0) {
              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;
            }
            *plVar11 = (long)(puVar7 + 3);
          }
          else {
            *plVar10 = *(long *)*plVar11;
            *(long **)*plVar11 = plVar10;
          }
          puVar7[4] = puVar7[4] + 1;
        }
        if (local_58 == &local_48) goto LAB_001844e2;
        FUN_002eff50();
        pdVar8 = readdir64(__dirp);
        if (pdVar8 == (dirent64 *)0x0) break;
      } while( true );
    }
    iVar5 = closedir(__dirp);
    if (iVar5 != 0) {
      piVar15 = __errno_location();
      pcVar16 = strerror(*piVar15);
      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);
    }
  }
  (**(code **)(*(long *)*puVar3 + 0x10))();
                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */
  plVar11 = (long *)FUN_002ee780(0x18);
  uVar17 = puVar3[2];
  plVar11[2] = (long)puVar7;
  *plVar11 = 0;
  plVar11[1] = (long)__name;
  uVar18 = (ulong)__name % uVar17;
  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);
  if (plVar10 != (long *)0x0) {
    pcVar16 = (char *)((long *)*plVar10)[1];
    plVar20 = (long *)*plVar10;
    while (plVar21 = plVar20, __name != pcVar16) {
      plVar20 = (long *)*plVar21;
      if ((plVar20 == (long *)0x0) ||
         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))
      goto LAB_00184868;
    }
    if (*plVar10 != 0) {
      FUN_002eff50(plVar11);
                    /* WARNING: Subroutine does not return */
      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);
    }
  }
LAB_00184868:
                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */
  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);
  if (cVar4 == '\0') {
    puVar14 = (undefined8 *)puVar3[1];
  }
  else {
    if (extraout_RDX_00 == 1) {
      puVar3[7] = 0;
      puVar14 = puVar3 + 7;
    }
    else {
                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */
      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);
    }
    plVar10 = (long *)puVar3[3];
    puVar3[3] = 0;
    if (plVar10 != (long *)0x0) {
      uVar17 = 0;
      do {
        plVar21 = (long *)*plVar10;
        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;
        plVar20 = puVar14 + uVar18;
        if ((long *)*plVar20 == (long *)0x0) {
          *plVar10 = puVar3[3];
          puVar3[3] = plVar10;
          *plVar20 = (long)(puVar3 + 3);
          if (*plVar10 != 0) {
            puVar14[uVar17] = plVar10;
          }
        }
        else {
          *plVar10 = *(long *)*plVar20;
          *(long **)*plVar20 = plVar10;
          uVar18 = uVar17;
        }
        plVar10 = plVar21;
        uVar17 = uVar18;
      } while (plVar21 != (long *)0x0);
    }
    if ((undefined8 *)puVar3[1] != puVar3 + 7) {
      FUN_002eff50();
    }
    puVar3[2] = extraout_RDX_00;
    uVar18 = (ulong)__name % extraout_RDX_00;
    puVar3[1] = puVar14;
  }
  if ((long *)puVar14[uVar18] == (long *)0x0) {
    *plVar11 = puVar3[3];
    lVar2 = puVar3[1];
    puVar3[3] = plVar11;
    if (*plVar11 != 0) {
      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;
    }
    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;
  }
  else {
    *plVar11 = *(long *)puVar14[uVar18];
    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;
  }
  puVar3[4] = puVar3[4] + 1;
  (**(code **)(*(long *)*puVar3 + 0x18))();
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x68
MOV R12,qword ptr [0x00458950]
MOV R14,qword ptr [RDI + 0x38]
MOV RDI,qword ptr [R12]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x10]
MOV RCX,qword ptr [R12 + 0x10]
MOV RAX,R14
XOR EDX,EDX
DIV RCX
MOV RAX,qword ptr [R12 + 0x8]
MOV R8,qword ptr [RAX + RDX*0x8]
TEST R8,R8
JZ 0x00184450
MOV RDI,qword ptr [R8]
MOV R9,RDX
MOV RSI,qword ptr [RDI + 0x8]
JMP 0x0018441f
MOV RAX,qword ptr [RDI]
TEST RAX,RAX
JZ 0x00184450
MOV RSI,qword ptr [RAX + 0x8]
MOV R8,RDI
XOR EDX,EDX
MOV RDI,RAX
MOV RAX,RSI
DIV RCX
CMP R9,RDX
JNZ 0x00184450
CMP R14,RSI
JNZ 0x00184400
MOV RDI,qword ptr [R12]
MOV RDX,qword ptr [R8]
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x18]
TEST RDX,RDX
JZ 0x0018445b
CMP qword ptr [RDX + 0x10],0x0
JZ 0x0018445b
CALL RAX
ADD RSP,0x68
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [R12]
MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x18]
CALL RAX
MOV EDI,0x40
CALL 0x002ee780
PXOR XMM0,XMM0
MOV RDI,R14
MOV qword ptr [RAX],R14
MOV RBX,RAX
LEA RAX,[RAX + 0x38]
MOVUPS xmmword ptr [RAX + -0x10],XMM0
MOV qword ptr [RAX],0x0
MOV qword ptr [RBX + 0x8],RAX
MOV qword ptr [RBX + 0x10],0x1
MOV qword ptr [RBX + 0x18],0x0
MOV qword ptr [RBX + 0x20],0x0
MOV dword ptr [RBX + 0x28],0x3f800000
MOV qword ptr [RBX + 0x30],0x0
MOV qword ptr [RSP + 0x30],RAX
CALL 0x001494e0
MOV qword ptr [RSP + 0x18],RAX
TEST RAX,RAX
JZ 0x00184820
LEA RAX,[RSP + 0x40]
MOV qword ptr [RSP + 0x28],RAX
LEA RAX,[RSP + 0x50]
MOV qword ptr [RSP],RAX
LEA RAX,[RBX + 0x18]
MOV qword ptr [RSP + 0x20],RAX
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00149ad0
TEST RAX,RAX
JZ 0x00184591
LEA RBP,[RAX + 0x13]
MOV RAX,qword ptr [RSP]
MOV RDI,RBP
MOV qword ptr [RSP + 0x40],RAX
CALL 0x00149490
MOV R15,qword ptr [RSP + 0x28]
MOV RSI,RBP
LEA RDX,[RBP + RAX*0x1]
MOV RDI,R15
CALL 0x001723b0
MOV RSI,qword ptr [RSP + 0x48]
MOV RDI,qword ptr [RSP + 0x40]
MOV EDX,0xc70f6907
CALL 0x002ee800
XOR EDX,EDX
LEA RDI,[RBX + 0x8]
MOV RCX,RAX
MOV qword ptr [RSP + 0x10],RAX
DIV qword ptr [RBX + 0x10]
MOV qword ptr [RSP + 0x8],RDX
MOV RSI,qword ptr [RSP + 0x8]
MOV RDX,R15
CALL 0x00185110
TEST RAX,RAX
JZ 0x00184660
CMP qword ptr [RAX],0x0
JZ 0x00184660
MOV RDI,qword ptr [RSP + 0x40]
CMP RDI,qword ptr [RSP]
JZ 0x001844e2
CALL 0x002eff50
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00149ad0
TEST RAX,RAX
JNZ 0x001844f5
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x00149940
TEST EAX,EAX
JNZ 0x00184928
MOV RDI,qword ptr [R12]
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x10]
MOV EDI,0x18
CALL 0x002ee780
MOV RSI,qword ptr [R12 + 0x10]
MOV qword ptr [RAX + 0x10],RBX
MOV RBP,RAX
XOR EDX,EDX
MOV qword ptr [RAX],0x0
MOV qword ptr [RAX + 0x8],R14
MOV RAX,R14
DIV RSI
MOV RAX,qword ptr [R12 + 0x8]
MOV R8,qword ptr [RAX + RDX*0x8]
MOV R9,RDX
LEA RBX,[RDX*0x8]
TEST R8,R8
JZ 0x00184868
MOV RDI,qword ptr [R8]
MOV RCX,qword ptr [RDI + 0x8]
JMP 0x00184627
MOV RAX,qword ptr [RDI]
TEST RAX,RAX
JZ 0x00184868
MOV RCX,qword ptr [RAX + 0x8]
MOV R8,RDI
XOR EDX,EDX
MOV RDI,RAX
MOV RAX,RCX
DIV RSI
CMP R9,RDX
JNZ 0x00184868
CMP R14,RCX
JNZ 0x00184600
CMP qword ptr [R8],0x0
JZ 0x00184868
MOV RDI,RBP
CALL 0x002eff50
LEA RDX,[0x38903f]
MOV ESI,0x97
LEA RDI,[0x388f8b]
CALL 0x0018dcf0
MOV EDI,0x30
CALL 0x002ee780
LEA R15,[RAX + 0x18]
MOV RBP,RAX
MOV qword ptr [RAX],0x0
MOV qword ptr [RAX + 0x8],R15
MOV RAX,qword ptr [RSP + 0x40]
CMP RAX,qword ptr [RSP]
JZ 0x001847e0
MOV qword ptr [RBP + 0x8],RAX
MOV RAX,qword ptr [RSP + 0x50]
MOV qword ptr [RBP + 0x18],RAX
MOV RAX,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RBX + 0x20]
LEA RDI,[RBX + 0x28]
MOV ECX,0x1
MOV RSI,qword ptr [RBX + 0x10]
MOV byte ptr [RSP + 0x50],0x0
MOV qword ptr [RBP + 0x10],RAX
MOV RAX,qword ptr [RSP]
MOV qword ptr [RSP + 0x48],0x0
MOV qword ptr [RSP + 0x40],RAX
MOV RAX,qword ptr [RBX + 0x30]
MOV qword ptr [RSP + 0x38],RAX
CALL 0x0032e4e0
MOV R13,RDX
TEST AL,AL
JZ 0x001847c0
CMP RDX,0x1
JZ 0x00184950
MOV RDI,RDX
CALL 0x00184130
MOV R15,RAX
MOV RCX,qword ptr [RBX + 0x18]
MOV qword ptr [RBX + 0x18],0x0
TEST RCX,RCX
JZ 0x00184768
XOR EDI,EDI
JMP 0x00184724
MOV RAX,qword ptr [RAX]
MOV qword ptr [RCX],RAX
MOV RAX,qword ptr [RSI]
MOV qword ptr [RAX],RCX
MOV RCX,R8
TEST R8,R8
JZ 0x00184768
MOV RAX,qword ptr [RCX + 0x28]
XOR EDX,EDX
MOV R8,qword ptr [RCX]
DIV R13
LEA RSI,[R15 + RDX*0x8]
MOV RAX,qword ptr [RSI]
TEST RAX,RAX
JNZ 0x00184710
MOV RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RCX],RAX
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RBX + 0x18],RCX
MOV qword ptr [RSI],RAX
CMP qword ptr [RCX],0x0
JZ 0x001847d0
MOV qword ptr [R15 + RDI*0x8],RCX
MOV RDI,RDX
MOV RCX,R8
TEST R8,R8
JNZ 0x00184724
NOP dword ptr [RAX]
MOV RDI,qword ptr [RBX + 0x8]
CMP qword ptr [RSP + 0x30],RDI
JZ 0x00184778
CALL 0x002eff50
MOV RAX,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV qword ptr [RBX + 0x10],R13
MOV qword ptr [RBX + 0x8],R15
DIV R13
MOV qword ptr [RSP + 0x8],RDX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [RBP + 0x28],RAX
MOV RAX,qword ptr [RSP + 0x8]
LEA RCX,[R15 + RAX*0x8]
MOV RAX,qword ptr [RCX]
TEST RAX,RAX
JZ 0x001847f0
MOV RAX,qword ptr [RAX]
MOV qword ptr [RBP],RAX
MOV RAX,qword ptr [RCX]
MOV qword ptr [RAX],RBP
ADD qword ptr [RBX + 0x20],0x1
JMP 0x0018456a
MOV R15,qword ptr [RBX + 0x8]
JMP 0x0018478f
MOV RDI,RDX
JMP 0x0018471c
MOVDQA XMM1,xmmword ptr [RSP + 0x50]
MOVUPS xmmword ptr [RBP + 0x18],XMM1
JMP 0x00184698
MOV RAX,qword ptr [RBX + 0x18]
MOV qword ptr [RBX + 0x18],RBP
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JZ 0x0018480f
MOV RAX,qword ptr [RAX + 0x28]
XOR EDX,EDX
DIV qword ptr [RBX + 0x10]
MOV qword ptr [R15 + RDX*0x8],RBP
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RCX],RAX
JMP 0x001847b6
CALL 0x00149760
MOV EDI,dword ptr [RAX]
CMP EDI,0x2
JZ 0x001845a3
CMP EDI,0x14
JZ 0x001845a3
CALL 0x00149610
MOV RBP,qword ptr [RBX]
LEA RDI,[0x388fe8]
MOV R13,RAX
CALL 0x00149320
MOV RDX,R13
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00185680
JMP 0x001845a3
MOV RDX,qword ptr [R12 + 0x20]
LEA RDI,[R12 + 0x28]
MOV ECX,0x1
MOV R15,qword ptr [R12 + 0x30]
CALL 0x0032e4e0
MOV R13,RDX
TEST AL,AL
JZ 0x00184968
CMP RDX,0x1
JZ 0x00184a29
MOV RDI,RDX
CALL 0x00184130
MOV R15,RAX
LEA R10,[R12 + 0x38]
MOV RCX,qword ptr [R12 + 0x18]
MOV qword ptr [R12 + 0x18],0x0
TEST RCX,RCX
JZ 0x001849b0
XOR R8D,R8D
LEA R9,[R12 + 0x18]
JMP 0x001848e8
MOV RDX,qword ptr [RSI]
MOV qword ptr [RCX],RDX
MOV RAX,qword ptr [RAX]
MOV qword ptr [RAX],RCX
MOV RCX,RDI
TEST RDI,RDI
JZ 0x001849b0
MOV RAX,qword ptr [RCX + 0x8]
XOR EDX,EDX
MOV RDI,qword ptr [RCX]
DIV R13
LEA RAX,[R15 + RDX*0x8]
MOV RSI,qword ptr [RAX]
TEST RSI,RSI
JNZ 0x001848d0
MOV RSI,qword ptr [R12 + 0x18]
MOV qword ptr [RCX],RSI
MOV qword ptr [R12 + 0x18],RCX
MOV qword ptr [RAX],R9
CMP qword ptr [RCX],0x0
JZ 0x001849e0
MOV qword ptr [R15 + R8*0x8],RCX
MOV R8,RDX
JMP 0x001848dc
CALL 0x00149760
MOV EDI,dword ptr [RAX]
CALL 0x00149610
MOV RSI,qword ptr [RBX]
LEA RDI,[0x388fb3]
MOV RDX,RAX
XOR EAX,EAX
CALL 0x00185730
JMP 0x001845a3
MOV qword ptr [RBX + 0x38],0x0
MOV R15,qword ptr [RSP + 0x30]
JMP 0x001846f7
MOV R15,qword ptr [R12 + 0x8]
MOV RAX,qword ptr [R15 + RBX*0x1]
TEST RAX,RAX
JZ 0x001849f0
MOV RAX,qword ptr [RAX]
MOV qword ptr [RBP],RAX
MOV RAX,qword ptr [R12 + 0x8]
MOV RAX,qword ptr [RAX + RBX*0x1]
MOV qword ptr [RAX],RBP
MOV RDI,qword ptr [R12]
ADD qword ptr [R12 + 0x20],0x1
MOV RAX,qword ptr [RDI]
CALL qword ptr [RAX + 0x18]
ADD RSP,0x68
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [R12 + 0x8]
CMP RDI,R10
JZ 0x001849bf
CALL 0x002eff50
MOV RAX,R14
XOR EDX,EDX
MOV qword ptr [R12 + 0x10],R13
DIV R13
MOV qword ptr [R12 + 0x8],R15
LEA RBX,[RDX*0x8]
JMP 0x0018496d
MOV R8,RDX
JMP 0x001848dc
MOV RAX,qword ptr [R12 + 0x18]
MOV qword ptr [RBP],RAX
MOV RCX,qword ptr [R12 + 0x8]
MOV qword ptr [R12 + 0x18],RBP
MOV RAX,qword ptr [RBP]
TEST RAX,RAX
JZ 0x00184a1b
MOV RAX,qword ptr [RAX + 0x8]
XOR EDX,EDX
DIV qword ptr [R12 + 0x10]
MOV qword ptr [RCX + RDX*0x8],RBP
LEA RAX,[R12 + 0x18]
MOV qword ptr [RCX + RBX*0x1],RAX
JMP 0x00184989
MOV qword ptr [R12 + 0x38],0x0
LEA R15,[R12 + 0x38]
MOV R10,R15
JMP 0x001848a6
(translation_unit "void FUN_001843b0(long param_1)\n\n{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */\n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}\n\n" (function_definition "void FUN_001843b0(long param_1)\n\n{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */\n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}" primitive_type (function_declarator "FUN_001843b0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */\n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}" { (declaration "char *__name;" primitive_type (pointer_declarator "*__name" * identifier) ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar8;" type_identifier (pointer_declarator "*pdVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong extraout_RDX_00;" type_identifier identifier ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "ulong local_90;" type_identifier identifier ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_48;" type_identifier identifier ;) (declaration "undefined7 uStack_47;" type_identifier identifier ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "puVar3 = DAT_00458950;" (assignment_expression "puVar3 = DAT_00458950" identifier = identifier) ;) (expression_statement "__name = *(char **)(param_1 + 0x38);" (assignment_expression "__name = *(char **)(param_1 + 0x38)" identifier = (pointer_expression "*(char **)(param_1 + 0x38)" * (cast_expression "(char **)(param_1 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*(long *)*DAT_00458950 + 0x10))();" (call_expression "(**(code **)(*(long *)*DAT_00458950 + 0x10))()" (parenthesized_expression "(**(code **)(*(long *)*DAT_00458950 + 0x10))" ( (pointer_expression "**(code **)(*(long *)*DAT_00458950 + 0x10)" * (pointer_expression "*(code **)(*(long *)*DAT_00458950 + 0x10)" * (cast_expression "(code **)(*(long *)*DAT_00458950 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*DAT_00458950 + 0x10)" ( (binary_expression "*(long *)*DAT_00458950 + 0x10" (pointer_expression "*(long *)*DAT_00458950" * (cast_expression "(long *)*DAT_00458950" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00458950" * identifier))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar17 = (ulong)__name % (ulong)puVar3[2];" (assignment_expression "uVar17 = (ulong)__name % (ulong)puVar3[2]" identifier = (binary_expression "(ulong)__name % (ulong)puVar3[2]" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)puVar3[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "plVar10 = *(long **)(puVar3[1] + uVar17 * 8);" (assignment_expression "plVar10 = *(long **)(puVar3[1] + uVar17 * 8)" identifier = (pointer_expression "*(long **)(puVar3[1] + uVar17 * 8)" * (cast_expression "(long **)(puVar3[1] + uVar17 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[1] + uVar17 * 8)" ( (binary_expression "puVar3[1] + uVar17 * 8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) + (binary_expression "uVar17 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }" { (expression_statement "pcVar16 = (char *)((long *)*plVar10)[1];" (assignment_expression "pcVar16 = (char *)((long *)*plVar10)[1]" identifier = (cast_expression "(char *)((long *)*plVar10)[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((long *)*plVar10)[1]" (parenthesized_expression "((long *)*plVar10)" ( (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier)) )) [ number_literal ]))) ;) (expression_statement "plVar11 = (long *)*plVar10;" (assignment_expression "plVar11 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (do_statement "do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));" do (compound_statement "{\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    }" { (expression_statement "plVar20 = plVar11;" (assignment_expression "plVar20 = plVar11" identifier = identifier) ;) (if_statement "if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" if (parenthesized_expression "(__name == pcVar16)" ( (binary_expression "__name == pcVar16" identifier == identifier) )) (compound_statement "{\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" { (expression_statement "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);" (assignment_expression "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18)" identifier = (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x18)" ( (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }" if (parenthesized_expression "((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0))" ( (binary_expression "(*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)" (parenthesized_expression "(*plVar10 != 0)" ( (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" * identifier) != number_literal) )) && (parenthesized_expression "(*(long *)(*plVar10 + 0x10) != 0)" ( (binary_expression "*(long *)(*plVar10 + 0x10) != 0" (pointer_expression "*(long *)(*plVar10 + 0x10)" * (cast_expression "(long *)(*plVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x10)" ( (binary_expression "*plVar10 + 0x10" (pointer_expression "*plVar10" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          (*pcVar6)();\n          return;\n        }" { (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0018445b;" goto statement_identifier ;) })) (expression_statement "plVar11 = (long *)*plVar20;" (assignment_expression "plVar11 = (long *)*plVar20" identifier = (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier))) ;) }) while (parenthesized_expression "((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]))" ( (binary_expression "(plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2])" (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2])" ( (comma_expression "pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (assignment_expression "pcVar16 = (char *)plVar11[1]" identifier = (cast_expression "(char *)plVar11[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar11[1]" identifier [ number_literal ]))) , (comma_expression "plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (assignment_expression "plVar10 = plVar20" identifier = identifier) , (binary_expression "uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" identifier == (binary_expression "(ulong)pcVar16 % (ulong)puVar3[2]" (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)puVar3[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar3[2]" identifier [ number_literal ])))))) ))) )) ;) })) (expression_statement "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);" (assignment_expression "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18)" identifier = (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x18)" ( (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0018445b:\n  (*pcVar6)();" statement_identifier : (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar7 = (undefined8 *)FUN_002ee780(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002ee780(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002ee780(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002ee780(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*puVar7 = __name;" (assignment_expression "*puVar7 = __name" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar14 = puVar7 + 7;" (assignment_expression "puVar14 = puVar7 + 7" identifier = (binary_expression "puVar7 + 7" identifier + number_literal)) ;) (expression_statement "*(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(puVar7 + 5)" * (cast_expression "(undefined1 (*) [16])(puVar7 + 5)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = puVar14;" (assignment_expression "puVar7[1] = puVar14" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = 1;" (assignment_expression "puVar7[2] = 1" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 5) = 0x3f800000;" (assignment_expression "*(undefined4 *)(puVar7 + 5) = 0x3f800000" (pointer_expression "*(undefined4 *)(puVar7 + 5)" * (cast_expression "(undefined4 *)(puVar7 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__dirp = opendir(__name);" (assignment_expression "__dirp = opendir(__name)" identifier = (call_expression "opendir(__name)" identifier (argument_list "(__name)" ( identifier )))) ;) (if_statement "if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" if (parenthesized_expression "(__dirp == (DIR *)0x0)" ( (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }" { (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *piVar15;" (assignment_expression "iVar5 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }" if (parenthesized_expression "((iVar5 != 2) && (iVar5 != 0x14))" ( (binary_expression "(iVar5 != 2) && (iVar5 != 0x14)" (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) && (parenthesized_expression "(iVar5 != 0x14)" ( (binary_expression "iVar5 != 0x14" identifier != number_literal) ))) )) (compound_statement "{\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }" { (expression_statement "pcVar16 = strerror(iVar5);" (assignment_expression "pcVar16 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "uVar1 = *puVar7;" (assignment_expression "uVar1 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar13 = gettext("%s: can not read directory: %s");" (assignment_expression "uVar13 = gettext("%s: can not read directory: %s")" identifier = (call_expression "gettext("%s: can not read directory: %s")" identifier (argument_list "("%s: can not read directory: %s")" ( (string_literal ""%s: can not read directory: %s"" " string_content ") )))) ;) (expression_statement "FUN_00185680(uVar13,uVar1,pcVar16);" (call_expression "FUN_00185680(uVar13,uVar1,pcVar16)" identifier (argument_list "(uVar13,uVar1,pcVar16)" ( identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" else (compound_statement "{\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" { (labeled_statement "LAB_001844e2:\n    pdVar8 = readdir64(__dirp);" statement_identifier : (expression_statement "pdVar8 = readdir64(__dirp);" (assignment_expression "pdVar8 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;)) (if_statement "if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(pdVar8 != (dirent64 *)0x0)" ( (binary_expression "pdVar8 != (dirent64 *)0x0" identifier != (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      }" { (expression_statement "pcVar16 = pdVar8->d_name;" (assignment_expression "pcVar16 = pdVar8->d_name" identifier = (field_expression "pdVar8->d_name" identifier -> field_identifier)) ;) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "sVar9 = strlen(pcVar16);" (assignment_expression "sVar9 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);" (call_expression "FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9)" identifier (argument_list "(&local_58,pcVar16,pcVar16 + sVar9)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "pcVar16 + sVar9" identifier + identifier) ))) ;) (expression_statement "uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);" (assignment_expression "uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907)" identifier = (call_expression "FUN_002ee800(local_58,local_50,0xc70f6907)" identifier (argument_list "(local_58,local_50,0xc70f6907)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_90 = uVar17 % (ulong)puVar7[2];" (assignment_expression "local_90 = uVar17 % (ulong)puVar7[2]" identifier = (binary_expression "uVar17 % (ulong)puVar7[2]" identifier % (cast_expression "(ulong)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);" (assignment_expression "plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" identifier = (cast_expression "(long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" identifier (argument_list "(puVar7 + 1,local_90,&local_58,uVar17)" ( (binary_expression "puVar7 + 1" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) , identifier ))))) ;) (if_statement "if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }" if (parenthesized_expression "((plVar10 == (long *)0x0) || (*plVar10 == 0))" ( (binary_expression "(plVar10 == (long *)0x0) || (*plVar10 == 0)" (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*plVar10 == 0)" ( (binary_expression "*plVar10 == 0" (pointer_expression "*plVar10" * identifier) == number_literal) ))) )) (compound_statement "{\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }" { comment (expression_statement "plVar10 = (long *)FUN_002ee780(0x30);" (assignment_expression "plVar10 = (long *)FUN_002ee780(0x30)" identifier = (cast_expression "(long *)FUN_002ee780(0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002ee780(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*plVar10 = 0;" (assignment_expression "*plVar10 = 0" (pointer_expression "*plVar10" * identifier) = number_literal) ;) (expression_statement "plVar10[1] = (long)(plVar10 + 3);" (assignment_expression "plVar10[1] = (long)(plVar10 + 3)" (subscript_expression "plVar10[1]" identifier [ number_literal ]) = (cast_expression "(long)(plVar10 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar10 + 3)" ( (binary_expression "plVar10 + 3" identifier + number_literal) )))) ;) (if_statement "if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }" { (expression_statement "plVar10[3] = CONCAT71(uStack_47,local_48);" (assignment_expression "plVar10[3] = CONCAT71(uStack_47,local_48)" (subscript_expression "plVar10[3]" identifier [ number_literal ]) = (call_expression "CONCAT71(uStack_47,local_48)" identifier (argument_list "(uStack_47,local_48)" ( identifier , identifier )))) ;) (expression_statement "plVar10[4] = lStack_40;" (assignment_expression "plVar10[4] = lStack_40" (subscript_expression "plVar10[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" else (compound_statement "{\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" { (expression_statement "plVar10[1] = (long)local_58;" (assignment_expression "plVar10[1] = (long)local_58" (subscript_expression "plVar10[1]" identifier [ number_literal ]) = (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar10[3] = CONCAT71(uStack_47,local_48);" (assignment_expression "plVar10[3] = CONCAT71(uStack_47,local_48)" (subscript_expression "plVar10[3]" identifier [ number_literal ]) = (call_expression "CONCAT71(uStack_47,local_48)" identifier (argument_list "(uStack_47,local_48)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar1 = puVar7[4];" (assignment_expression "uVar1 = puVar7[4]" identifier = (subscript_expression "puVar7[4]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar7[2];" (assignment_expression "uVar13 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "plVar10[2] = local_50;" (assignment_expression "plVar10[2] = local_50" (subscript_expression "plVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);" (assignment_expression "cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1)" identifier = (call_expression "FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1)" identifier (argument_list "(puVar7 + 5,uVar13,uVar1,1)" ( (binary_expression "puVar7 + 5" identifier + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar12 = (undefined8 *)puVar7[1];\n          }" { (expression_statement "puVar12 = (undefined8 *)puVar7[1];" (assignment_expression "puVar12 = (undefined8 *)puVar7[1]" identifier = (cast_expression "(undefined8 *)puVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" else (compound_statement "{\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" { (if_statement "if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }" if (parenthesized_expression "(extraout_RDX == 1)" ( (binary_expression "extraout_RDX == 1" identifier == number_literal) )) (compound_statement "{\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }" { (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) }) (else_clause "else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }" else (compound_statement "{\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              puVar12 = (undefined8 *)FUN_00184130();\n            }" { comment (expression_statement "puVar12 = (undefined8 *)FUN_00184130();" (assignment_expression "puVar12 = (undefined8 *)FUN_00184130()" identifier = (cast_expression "(undefined8 *)FUN_00184130()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00184130()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "plVar11 = (long *)puVar7[3];" (assignment_expression "plVar11 = (long *)puVar7[3]" identifier = (cast_expression "(long *)puVar7[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);" do (compound_statement "{\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              }" { (while_statement "while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }" { (expression_statement "plVar21 = (long *)*plVar11;" (assignment_expression "plVar21 = (long *)*plVar11" identifier = (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier))) ;) (expression_statement "uVar19 = (ulong)plVar11[5] % extraout_RDX;" (assignment_expression "uVar19 = (ulong)plVar11[5] % extraout_RDX" identifier = (binary_expression "(ulong)plVar11[5] % extraout_RDX" (cast_expression "(ulong)plVar11[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar11[5]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "plVar20 = puVar12 + uVar19;" (assignment_expression "plVar20 = puVar12 + uVar19" identifier = (binary_expression "puVar12 + uVar19" identifier + identifier)) ;) (if_statement "if ((long *)*plVar20 == (long *)0x0) break;" if (parenthesized_expression "((long *)*plVar20 == (long *)0x0)" ( (binary_expression "(long *)*plVar20 == (long *)0x0" (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*plVar11 = *(long *)*plVar20;" (assignment_expression "*plVar11 = *(long *)*plVar20" (pointer_expression "*plVar11" * identifier) = (pointer_expression "*(long *)*plVar20" * (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)))) ;) (expression_statement "*(long **)*plVar20 = plVar11;" (assignment_expression "*(long **)*plVar20 = plVar11" (pointer_expression "*(long **)*plVar20" * (cast_expression "(long **)*plVar20" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar20" * identifier))) = identifier) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (labeled_statement "LAB_0018471c:\n                  plVar11 = plVar21;" statement_identifier : (expression_statement "plVar11 = plVar21;" (assignment_expression "plVar11 = plVar21" identifier = identifier) ;)) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" identifier = identifier) ;) (if_statement "if (plVar21 == (long *)0x0) goto LAB_00184768;" if (parenthesized_expression "(plVar21 == (long *)0x0)" ( (binary_expression "plVar21 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00184768;" goto statement_identifier ;)) })) (expression_statement "*plVar11 = puVar7[3];" (assignment_expression "*plVar11 = puVar7[3]" (pointer_expression "*plVar11" * identifier) = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = plVar11;" (assignment_expression "puVar7[3] = plVar11" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*plVar20 = (long)(puVar7 + 3);" (assignment_expression "*plVar20 = (long)(puVar7 + 3)" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)(puVar7 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) ;) (if_statement "if (*plVar11 == 0) goto LAB_0018471c;" if (parenthesized_expression "(*plVar11 == 0)" ( (binary_expression "*plVar11 == 0" (pointer_expression "*plVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0018471c;" goto statement_identifier ;)) (expression_statement "puVar12[uVar18] = plVar11;" (assignment_expression "puVar12[uVar18] = plVar11" (subscript_expression "puVar12[uVar18]" identifier [ identifier ]) = identifier) ;) (expression_statement "plVar11 = plVar21;" (assignment_expression "plVar11 = plVar21" identifier = identifier) ;) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" identifier = identifier) ;) }) while (parenthesized_expression "(plVar21 != (long *)0x0)" ( (binary_expression "plVar21 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }" statement_identifier : (if_statement "if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }" if (parenthesized_expression "(puVar14 != (undefined8 *)puVar7[1])" ( (binary_expression "puVar14 != (undefined8 *)puVar7[1]" identifier != (cast_expression "(undefined8 *)puVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) )) (compound_statement "{\n              FUN_002eff50();\n            }" { (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "puVar7[2] = extraout_RDX;" (assignment_expression "puVar7[2] = extraout_RDX" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[1] = puVar12;" (assignment_expression "puVar7[1] = puVar12" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_90 = uVar17 % extraout_RDX;" (assignment_expression "local_90 = uVar17 % extraout_RDX" identifier = (binary_expression "uVar17 % extraout_RDX" identifier % identifier)) ;) }))) (expression_statement "plVar10[5] = uVar17;" (assignment_expression "plVar10[5] = uVar17" (subscript_expression "plVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar11 = puVar12 + local_90;" (assignment_expression "plVar11 = puVar12 + local_90" identifier = (binary_expression "puVar12 + local_90" identifier + identifier)) ;) (if_statement "if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" if (parenthesized_expression "((long *)*plVar11 == (long *)0x0)" ( (binary_expression "(long *)*plVar11 == (long *)0x0" (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }" { (expression_statement "lVar2 = puVar7[3];" (assignment_expression "lVar2 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = plVar10;" (assignment_expression "puVar7[3] = plVar10" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*plVar10 = lVar2;" (assignment_expression "*plVar10 = lVar2" (pointer_expression "*plVar10" * identifier) = identifier) ;) (if_statement "if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }" { (expression_statement "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;" (assignment_expression "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10" (subscript_expression "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]]" identifier [ (binary_expression "*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]" (pointer_expression "*(ulong *)(lVar2 + 0x28)" * (cast_expression "(ulong *)(lVar2 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x28)" ( (binary_expression "lVar2 + 0x28" identifier + number_literal) )))) % (cast_expression "(ulong)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ]))) ]) = identifier) ;) })) (expression_statement "*plVar11 = (long)(puVar7 + 3);" (assignment_expression "*plVar11 = (long)(puVar7 + 3)" (pointer_expression "*plVar11" * identifier) = (cast_expression "(long)(puVar7 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) ;) }) (else_clause "else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" else (compound_statement "{\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" { (expression_statement "*plVar10 = *(long *)*plVar11;" (assignment_expression "*plVar10 = *(long *)*plVar11" (pointer_expression "*plVar10" * identifier) = (pointer_expression "*(long *)*plVar11" * (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier)))) ;) (expression_statement "*(long **)*plVar11 = plVar10;" (assignment_expression "*(long **)*plVar11 = plVar10" (pointer_expression "*(long **)*plVar11" * (cast_expression "(long **)*plVar11" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar11" * identifier))) = identifier) ;) }))) (expression_statement "puVar7[4] = puVar7[4] + 1;" (assignment_expression "puVar7[4] = puVar7[4] + 1" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (binary_expression "puVar7[4] + 1" (subscript_expression "puVar7[4]" identifier [ number_literal ]) + number_literal)) ;) })) (if_statement "if (local_58 == &local_48) goto LAB_001844e2;" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (goto_statement "goto LAB_001844e2;" goto statement_identifier ;)) (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) (expression_statement "pdVar8 = readdir64(__dirp);" (assignment_expression "pdVar8 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar8 == (dirent64 *)0x0) break;" if (parenthesized_expression "(pdVar8 == (dirent64 *)0x0)" ( (binary_expression "pdVar8 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar5 = closedir(__dirp);" (assignment_expression "iVar5 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }" { (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = strerror(*piVar15);" (assignment_expression "pcVar16 = strerror(*piVar15)" identifier = (call_expression "strerror(*piVar15)" identifier (argument_list "(*piVar15)" ( (pointer_expression "*piVar15" * identifier) )))) ;) (expression_statement "FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);" (call_expression "FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16)" identifier (argument_list "("%s: closedir failed: %s",*puVar7,pcVar16)" ( (string_literal ""%s: closedir failed: %s"" " string_content ") , (pointer_expression "*puVar7" * identifier) , identifier ))) ;) })) }))) (expression_statement "(**(code **)(*(long *)*puVar3 + 0x10))();" (call_expression "(**(code **)(*(long *)*puVar3 + 0x10))()" (parenthesized_expression "(**(code **)(*(long *)*puVar3 + 0x10))" ( (pointer_expression "**(code **)(*(long *)*puVar3 + 0x10)" * (pointer_expression "*(code **)(*(long *)*puVar3 + 0x10)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x10)" ( (binary_expression "*(long *)*puVar3 + 0x10" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) comment (expression_statement "plVar11 = (long *)FUN_002ee780(0x18);" (assignment_expression "plVar11 = (long *)FUN_002ee780(0x18)" identifier = (cast_expression "(long *)FUN_002ee780(0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002ee780(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "uVar17 = puVar3[2];" (assignment_expression "uVar17 = puVar3[2]" identifier = (subscript_expression "puVar3[2]" identifier [ number_literal ])) ;) (expression_statement "plVar11[2] = (long)puVar7;" (assignment_expression "plVar11[2] = (long)puVar7" (subscript_expression "plVar11[2]" identifier [ number_literal ]) = (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*plVar11 = 0;" (assignment_expression "*plVar11 = 0" (pointer_expression "*plVar11" * identifier) = number_literal) ;) (expression_statement "plVar11[1] = (long)__name;" (assignment_expression "plVar11[1] = (long)__name" (subscript_expression "plVar11[1]" identifier [ number_literal ]) = (cast_expression "(long)__name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "uVar18 = (ulong)__name % uVar17;" (assignment_expression "uVar18 = (ulong)__name % uVar17" identifier = (binary_expression "(ulong)__name % uVar17" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "plVar10 = *(long **)(puVar3[1] + uVar18 * 8);" (assignment_expression "plVar10 = *(long **)(puVar3[1] + uVar18 * 8)" identifier = (pointer_expression "*(long **)(puVar3[1] + uVar18 * 8)" * (cast_expression "(long **)(puVar3[1] + uVar18 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[1] + uVar18 * 8)" ( (binary_expression "puVar3[1] + uVar18 * 8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) + (binary_expression "uVar18 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }" { (expression_statement "pcVar16 = (char *)((long *)*plVar10)[1];" (assignment_expression "pcVar16 = (char *)((long *)*plVar10)[1]" identifier = (cast_expression "(char *)((long *)*plVar10)[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((long *)*plVar10)[1]" (parenthesized_expression "((long *)*plVar10)" ( (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier)) )) [ number_literal ]))) ;) (expression_statement "plVar20 = (long *)*plVar10;" (assignment_expression "plVar20 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (while_statement "while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }" while (parenthesized_expression "(plVar21 = plVar20, __name != pcVar16)" ( (comma_expression "plVar21 = plVar20, __name != pcVar16" (assignment_expression "plVar21 = plVar20" identifier = identifier) , (binary_expression "__name != pcVar16" identifier != identifier)) )) (compound_statement "{\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }" { (expression_statement "plVar20 = (long *)*plVar21;" (assignment_expression "plVar20 = (long *)*plVar21" identifier = (cast_expression "(long *)*plVar21" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar21" * identifier))) ;) (if_statement "if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;" if (parenthesized_expression "((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))" ( (binary_expression "(plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17)" (parenthesized_expression "(plVar20 == (long *)0x0)" ( (binary_expression "plVar20 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17)" ( (comma_expression "pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17" (assignment_expression "pcVar16 = (char *)plVar20[1]" identifier = (cast_expression "(char *)plVar20[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar20[1]" identifier [ number_literal ]))) , (comma_expression "plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17" (assignment_expression "plVar10 = plVar21" identifier = identifier) , (binary_expression "uVar18 != (ulong)pcVar16 % uVar17" identifier != (binary_expression "(ulong)pcVar16 % uVar17" (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)))) ))) )) (goto_statement "goto LAB_00184868;" goto statement_identifier ;)) })) (if_statement "if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }" if (parenthesized_expression "(*plVar10 != 0)" ( (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" * identifier) != number_literal) )) (compound_statement "{\n      FUN_002eff50(plVar11);\n                    /* WARNING: Subroutine does not return */\n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }" { (expression_statement "FUN_002eff50(plVar11);" (call_expression "FUN_002eff50(plVar11)" identifier (argument_list "(plVar11)" ( identifier ))) ;) comment (expression_statement "FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);" (call_expression "FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f)" identifier (argument_list "("../../gold/dirsearch.cc",0x97,&DAT_0038903f)" ( (string_literal ""../../gold/dirsearch.cc"" " string_content ") , number_literal , (pointer_expression "&DAT_0038903f" & identifier) ))) ;) })) })) (labeled_statement "LAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);" statement_identifier : comment (expression_statement "cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);" (assignment_expression "cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1)" identifier = (call_expression "FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1)" identifier (argument_list "(puVar3 + 5,uVar17,puVar3[4],1)" ( (binary_expression "puVar3 + 5" identifier + number_literal) , identifier , (subscript_expression "puVar3[4]" identifier [ number_literal ]) , number_literal )))) ;)) (if_statement "if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar14 = (undefined8 *)puVar3[1];\n  }" { (expression_statement "puVar14 = (undefined8 *)puVar3[1];" (assignment_expression "puVar14 = (undefined8 *)puVar3[1]" identifier = (cast_expression "(undefined8 *)puVar3[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" else (compound_statement "{\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" { (if_statement "if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" if (parenthesized_expression "(extraout_RDX_00 == 1)" ( (binary_expression "extraout_RDX_00 == 1" identifier == number_literal) )) (compound_statement "{\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }" { (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar3 + 7;" (assignment_expression "puVar14 = puVar3 + 7" identifier = (binary_expression "puVar3 + 7" identifier + number_literal)) ;) }) (else_clause "else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" else (compound_statement "{\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" { comment (expression_statement "puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);" (assignment_expression "puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00)" identifier = (cast_expression "(undefined8 *)FUN_00184130(extraout_RDX_00)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00184130(extraout_RDX_00)" identifier (argument_list "(extraout_RDX_00)" ( identifier ))))) ;) }))) (expression_statement "plVar10 = (long *)puVar3[3];" (assignment_expression "plVar10 = (long *)puVar3[3]" identifier = (cast_expression "(long *)puVar3[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);" do (compound_statement "{\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      }" { (expression_statement "plVar21 = (long *)*plVar10;" (assignment_expression "plVar21 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (expression_statement "uVar18 = (ulong)plVar10[1] % extraout_RDX_00;" (assignment_expression "uVar18 = (ulong)plVar10[1] % extraout_RDX_00" identifier = (binary_expression "(ulong)plVar10[1] % extraout_RDX_00" (cast_expression "(ulong)plVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar10[1]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "plVar20 = puVar14 + uVar18;" (assignment_expression "plVar20 = puVar14 + uVar18" identifier = (binary_expression "puVar14 + uVar18" identifier + identifier)) ;) (if_statement "if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" if (parenthesized_expression "((long *)*plVar20 == (long *)0x0)" ( (binary_expression "(long *)*plVar20 == (long *)0x0" (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }" { (expression_statement "*plVar10 = puVar3[3];" (assignment_expression "*plVar10 = puVar3[3]" (pointer_expression "*plVar10" * identifier) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = plVar10;" (assignment_expression "puVar3[3] = plVar10" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*plVar20 = (long)(puVar3 + 3);" (assignment_expression "*plVar20 = (long)(puVar3 + 3)" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)(puVar3 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) ;) (if_statement "if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }" if (parenthesized_expression "(*plVar10 != 0)" ( (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" * identifier) != number_literal) )) (compound_statement "{\n            puVar14[uVar17] = plVar10;\n          }" { (expression_statement "puVar14[uVar17] = plVar10;" (assignment_expression "puVar14[uVar17] = plVar10" (subscript_expression "puVar14[uVar17]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" else (compound_statement "{\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" { (expression_statement "*plVar10 = *(long *)*plVar20;" (assignment_expression "*plVar10 = *(long *)*plVar20" (pointer_expression "*plVar10" * identifier) = (pointer_expression "*(long *)*plVar20" * (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)))) ;) (expression_statement "*(long **)*plVar20 = plVar10;" (assignment_expression "*(long **)*plVar20 = plVar10" (pointer_expression "*(long **)*plVar20" * (cast_expression "(long **)*plVar20" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar20" * identifier))) = identifier) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) }))) (expression_statement "plVar10 = plVar21;" (assignment_expression "plVar10 = plVar21" identifier = identifier) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "(plVar21 != (long *)0x0)" ( (binary_expression "plVar21 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }" if (parenthesized_expression "((undefined8 *)puVar3[1] != puVar3 + 7)" ( (binary_expression "(undefined8 *)puVar3[1] != puVar3 + 7" (cast_expression "(undefined8 *)puVar3[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[1]" identifier [ number_literal ])) != (binary_expression "puVar3 + 7" identifier + number_literal)) )) (compound_statement "{\n      FUN_002eff50();\n    }" { (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar3[2] = extraout_RDX_00;" (assignment_expression "puVar3[2] = extraout_RDX_00" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar18 = (ulong)__name % extraout_RDX_00;" (assignment_expression "uVar18 = (ulong)__name % extraout_RDX_00" identifier = (binary_expression "(ulong)__name % extraout_RDX_00" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "puVar3[1] = puVar14;" (assignment_expression "puVar3[1] = puVar14" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" if (parenthesized_expression "((long *)puVar14[uVar18] == (long *)0x0)" ( (binary_expression "(long *)puVar14[uVar18] == (long *)0x0" (cast_expression "(long *)puVar14[uVar18]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[uVar18]" identifier [ identifier ])) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }" { (expression_statement "*plVar11 = puVar3[3];" (assignment_expression "*plVar11 = puVar3[3]" (pointer_expression "*plVar11" * identifier) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "lVar2 = puVar3[1];" (assignment_expression "lVar2 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = plVar11;" (assignment_expression "puVar3[3] = plVar11" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }" if (parenthesized_expression "(*plVar11 != 0)" ( (binary_expression "*plVar11 != 0" (pointer_expression "*plVar11" * identifier) != number_literal) )) (compound_statement "{\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }" { (expression_statement "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;" (assignment_expression "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11" (pointer_expression "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" * (cast_expression "(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" ( (binary_expression "lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8" identifier + (binary_expression "(*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8" (parenthesized_expression "(*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2])" ( (binary_expression "*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]" (pointer_expression "*(ulong *)(*plVar11 + 8)" * (cast_expression "(ulong *)(*plVar11 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar11 + 8)" ( (binary_expression "*plVar11 + 8" (pointer_expression "*plVar11" * identifier) + number_literal) )))) % (cast_expression "(ulong)puVar3[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar3[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) })) (expression_statement "*(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;" (assignment_expression "*(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3" (pointer_expression "*(undefined8 **)(lVar2 + uVar18 * 8)" * (cast_expression "(undefined8 **)(lVar2 + uVar18 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + uVar18 * 8)" ( (binary_expression "lVar2 + uVar18 * 8" identifier + (binary_expression "uVar18 * 8" identifier * number_literal)) )))) = (binary_expression "puVar3 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" else (compound_statement "{\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" { (expression_statement "*plVar11 = *(long *)puVar14[uVar18];" (assignment_expression "*plVar11 = *(long *)puVar14[uVar18]" (pointer_expression "*plVar11" * identifier) = (pointer_expression "*(long *)puVar14[uVar18]" * (cast_expression "(long *)puVar14[uVar18]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[uVar18]" identifier [ identifier ])))) ;) (expression_statement "**(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;" (assignment_expression "**(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11" (pointer_expression "**(undefined8 **)(puVar3[1] + uVar18 * 8)" * (pointer_expression "*(undefined8 **)(puVar3[1] + uVar18 * 8)" * (cast_expression "(undefined8 **)(puVar3[1] + uVar18 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[1] + uVar18 * 8)" ( (binary_expression "puVar3[1] + uVar18 * 8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) + (binary_expression "uVar18 * 8" identifier * number_literal)) ))))) = identifier) ;) }))) (expression_statement "puVar3[4] = puVar3[4] + 1;" (assignment_expression "puVar3[4] = puVar3[4] + 1" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = (binary_expression "puVar3[4] + 1" (subscript_expression "puVar3[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(**(code **)(*(long *)*puVar3 + 0x18))();" (call_expression "(**(code **)(*(long *)*puVar3 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*puVar3 + 0x18))" ( (pointer_expression "**(code **)(*(long *)*puVar3 + 0x18)" * (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x18)" ( (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* DWARF original prototype: void run(Dir_cache_task * this, Workqueue * param_1) */\n\nvoid __thiscall\nanon_unknown.dwarf_4b7067::Dir_cache_task::run(Dir_cache_task *this,Workqueue *param_1)\n\n{\n  _Hash_node_base *p_Var1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  size_type *psVar3;\n  _Hash_node_base *__name;\n  _Hash_node_base *p_Var4;\n  Lock_impl *pLVar5;\n  __bucket_type *pp_Var6;\n  Dir_caches *pDVar7;\n  char cVar8;\n  int iVar9;\n  _func_int_varargs *p_Var10;\n  _Hash_node_base *p_Var11;\n  DIR *__dirp;\n  dirent64 *pdVar12;\n  size_t sVar13;\n  _Hash_node_base *p_Var14;\n  __node_base *p_Var15;\n  _Hash_node_base *p_Var16;\n  _Hash_node_base *p_Var17;\n  _Hash_node_base *p_Var18;\n  char *format;\n  __bucket_type *pp_Var19;\n  int *piVar20;\n  char *pcVar21;\n  _Hash_node_base *p_Var22;\n  ulong uVar23;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_00;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_01;\n  ulong uVar24;\n  __bucket_type p_Var25;\n  __bucket_type p_Var26;\n  ulong local_90;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_58;\n  \n  pDVar7 = caches;\n  __name = (_Hash_node_base *)this->dir_;\n  (*((caches->lock_).lock_)->_vptr_Lock_impl[2])();\n  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;\n  uVar23 = (ulong)__name % uVar24;\n  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];\n  if (p_Var26 != (__bucket_type)0x0) {\n    p_Var16 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var11 = p_Var26->_M_nxt;\n    do {\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    } while ((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));\n  }\n  p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\nLAB_0018445b:\n  (*p_Var10)();\n  p_Var11 = (_Hash_node_base *)operator_new(0x40);\n  p_Var11->_M_nxt = __name;\n  p_Var16 = p_Var11 + 7;\n  *(undefined1 (*) [16])(p_Var11 + 5) = (undefined1  [16])0x0;\n  p_Var16->_M_nxt = (_Hash_node_base *)0x0;\n  p_Var11[1]._M_nxt = p_Var16;\n  p_Var11[2]._M_nxt = (_Hash_node_base *)0x1;\n  p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n  p_Var11[4]._M_nxt = (_Hash_node_base *)0x0;\n  *(undefined4 *)&p_Var11[5]._M_nxt = 0x3f800000;\n  p_Var11[6]._M_nxt = (_Hash_node_base *)0x0;\n  __dirp = opendir((char *)__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar20 = __errno_location();\n    iVar9 = *piVar20;\n    if ((iVar9 != 2) && (iVar9 != 0x14)) {\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }\n  }\n  else {\n    paVar2 = &local_58.field_2;\nLAB_001844e2:\n    pdVar12 = readdir64(__dirp);\n    if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar9 = closedir(__dirp);\n    if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }\n  }\n  (*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])();\n                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */\n  p_Var16 = (_Hash_node_base *)operator_new(0x18);\n  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;\n  p_Var16[2]._M_nxt = p_Var11;\n  p_Var16->_M_nxt = (_Hash_node_base *)0x0;\n  p_Var16[1]._M_nxt = __name;\n  uVar23 = (ulong)__name % uVar24;\n  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];\n  if (p_Var26 != (__bucket_type)0x0) {\n    p_Var11 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var14 = p_Var26->_M_nxt;\n    while (p_Var25 = p_Var14, __name != p_Var11) {\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }\n    if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }\n  }\nLAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);\n  if (cVar8 == '\0') {\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n  }\n  else {\n    if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }\n    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }\n    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;\n    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }\n    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;\n    uVar23 = (ulong)__name % (ulong)this_01;\n    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;\n  }\n  if (pp_Var19[uVar23] == (__bucket_type)0x0) {\n    p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;\n    if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }\n    pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;\n  }\n  else {\n    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;\n    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;\n  }\n  pLVar5 = (pDVar7->lock_).lock_;\n  psVar3 = &(pDVar7->caches_)._M_h._M_element_count;\n  *psVar3 = *psVar3 + 1;\n  (*pLVar5->_vptr_Lock_impl[3])();\n  return;\n}\n\n" comment (function_definition "void __thiscall\nanon_unknown.dwarf_4b7067::Dir_cache_task::run(Dir_cache_task *this,Workqueue *param_1)\n\n{\n  _Hash_node_base *p_Var1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  size_type *psVar3;\n  _Hash_node_base *__name;\n  _Hash_node_base *p_Var4;\n  Lock_impl *pLVar5;\n  __bucket_type *pp_Var6;\n  Dir_caches *pDVar7;\n  char cVar8;\n  int iVar9;\n  _func_int_varargs *p_Var10;\n  _Hash_node_base *p_Var11;\n  DIR *__dirp;\n  dirent64 *pdVar12;\n  size_t sVar13;\n  _Hash_node_base *p_Var14;\n  __node_base *p_Var15;\n  _Hash_node_base *p_Var16;\n  _Hash_node_base *p_Var17;\n  _Hash_node_base *p_Var18;\n  char *format;\n  __bucket_type *pp_Var19;\n  int *piVar20;\n  char *pcVar21;\n  _Hash_node_base *p_Var22;\n  ulong uVar23;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_00;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_01;\n  ulong uVar24;\n  __bucket_type p_Var25;\n  __bucket_type p_Var26;\n  ulong local_90;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_58;\n  \n  pDVar7 = caches;\n  __name = (_Hash_node_base *)this->dir_;\n  (*((caches->lock_).lock_)->_vptr_Lock_impl[2])();\n  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;\n  uVar23 = (ulong)__name % uVar24;\n  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];\n  if (p_Var26 != (__bucket_type)0x0) {\n    p_Var16 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var11 = p_Var26->_M_nxt;\n    do {\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    } while ((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));\n  }\n  p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\nLAB_0018445b:\n  (*p_Var10)();\n  p_Var11 = (_Hash_node_base *)operator_new(0x40);\n  p_Var11->_M_nxt = __name;\n  p_Var16 = p_Var11 + 7;\n  *(undefined1 (*) [16])(p_Var11 + 5) = (undefined1  [16])0x0;\n  p_Var16->_M_nxt = (_Hash_node_base *)0x0;\n  p_Var11[1]._M_nxt = p_Var16;\n  p_Var11[2]._M_nxt = (_Hash_node_base *)0x1;\n  p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n  p_Var11[4]._M_nxt = (_Hash_node_base *)0x0;\n  *(undefined4 *)&p_Var11[5]._M_nxt = 0x3f800000;\n  p_Var11[6]._M_nxt = (_Hash_node_base *)0x0;\n  __dirp = opendir((char *)__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar20 = __errno_location();\n    iVar9 = *piVar20;\n    if ((iVar9 != 2) && (iVar9 != 0x14)) {\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }\n  }\n  else {\n    paVar2 = &local_58.field_2;\nLAB_001844e2:\n    pdVar12 = readdir64(__dirp);\n    if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar9 = closedir(__dirp);\n    if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }\n  }\n  (*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])();\n                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */\n  p_Var16 = (_Hash_node_base *)operator_new(0x18);\n  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;\n  p_Var16[2]._M_nxt = p_Var11;\n  p_Var16->_M_nxt = (_Hash_node_base *)0x0;\n  p_Var16[1]._M_nxt = __name;\n  uVar23 = (ulong)__name % uVar24;\n  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];\n  if (p_Var26 != (__bucket_type)0x0) {\n    p_Var11 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var14 = p_Var26->_M_nxt;\n    while (p_Var25 = p_Var14, __name != p_Var11) {\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }\n    if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }\n  }\nLAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);\n  if (cVar8 == '\0') {\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n  }\n  else {\n    if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }\n    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }\n    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;\n    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }\n    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;\n    uVar23 = (ulong)__name % (ulong)this_01;\n    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;\n  }\n  if (pp_Var19[uVar23] == (__bucket_type)0x0) {\n    p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;\n    if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }\n    pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;\n  }\n  else {\n    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;\n    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;\n  }\n  pLVar5 = (pDVar7->lock_).lock_;\n  psVar3 = &(pDVar7->caches_)._M_h._M_element_count;\n  *psVar3 = *psVar3 + 1;\n  (*pLVar5->_vptr_Lock_impl[3])();\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_4b7067::Dir_cache_task::" identifier . identifier : : identifier : :) (function_declarator "run(Dir_cache_task *this,Workqueue *param_1)" identifier (parameter_list "(Dir_cache_task *this,Workqueue *param_1)" ( (parameter_declaration "Dir_cache_task *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Workqueue *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  _Hash_node_base *p_Var1;\n  anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n  *paVar2;\n  size_type *psVar3;\n  _Hash_node_base *__name;\n  _Hash_node_base *p_Var4;\n  Lock_impl *pLVar5;\n  __bucket_type *pp_Var6;\n  Dir_caches *pDVar7;\n  char cVar8;\n  int iVar9;\n  _func_int_varargs *p_Var10;\n  _Hash_node_base *p_Var11;\n  DIR *__dirp;\n  dirent64 *pdVar12;\n  size_t sVar13;\n  _Hash_node_base *p_Var14;\n  __node_base *p_Var15;\n  _Hash_node_base *p_Var16;\n  _Hash_node_base *p_Var17;\n  _Hash_node_base *p_Var18;\n  char *format;\n  __bucket_type *pp_Var19;\n  int *piVar20;\n  char *pcVar21;\n  _Hash_node_base *p_Var22;\n  ulong uVar23;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_00;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_01;\n  ulong uVar24;\n  __bucket_type p_Var25;\n  __bucket_type p_Var26;\n  ulong local_90;\n  basic_string<char,_std::char_traits<char>,_std::allocator<char>_> local_58;\n  \n  pDVar7 = caches;\n  __name = (_Hash_node_base *)this->dir_;\n  (*((caches->lock_).lock_)->_vptr_Lock_impl[2])();\n  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;\n  uVar23 = (ulong)__name % uVar24;\n  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];\n  if (p_Var26 != (__bucket_type)0x0) {\n    p_Var16 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var11 = p_Var26->_M_nxt;\n    do {\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    } while ((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));\n  }\n  p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\nLAB_0018445b:\n  (*p_Var10)();\n  p_Var11 = (_Hash_node_base *)operator_new(0x40);\n  p_Var11->_M_nxt = __name;\n  p_Var16 = p_Var11 + 7;\n  *(undefined1 (*) [16])(p_Var11 + 5) = (undefined1  [16])0x0;\n  p_Var16->_M_nxt = (_Hash_node_base *)0x0;\n  p_Var11[1]._M_nxt = p_Var16;\n  p_Var11[2]._M_nxt = (_Hash_node_base *)0x1;\n  p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n  p_Var11[4]._M_nxt = (_Hash_node_base *)0x0;\n  *(undefined4 *)&p_Var11[5]._M_nxt = 0x3f800000;\n  p_Var11[6]._M_nxt = (_Hash_node_base *)0x0;\n  __dirp = opendir((char *)__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar20 = __errno_location();\n    iVar9 = *piVar20;\n    if ((iVar9 != 2) && (iVar9 != 0x14)) {\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }\n  }\n  else {\n    paVar2 = &local_58.field_2;\nLAB_001844e2:\n    pdVar12 = readdir64(__dirp);\n    if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar9 = closedir(__dirp);\n    if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }\n  }\n  (*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])();\n                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */\n  p_Var16 = (_Hash_node_base *)operator_new(0x18);\n  uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;\n  p_Var16[2]._M_nxt = p_Var11;\n  p_Var16->_M_nxt = (_Hash_node_base *)0x0;\n  p_Var16[1]._M_nxt = __name;\n  uVar23 = (ulong)__name % uVar24;\n  p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];\n  if (p_Var26 != (__bucket_type)0x0) {\n    p_Var11 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var14 = p_Var26->_M_nxt;\n    while (p_Var25 = p_Var14, __name != p_Var11) {\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }\n    if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }\n  }\nLAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);\n  if (cVar8 == '\0') {\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n  }\n  else {\n    if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }\n    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }\n    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;\n    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }\n    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;\n    uVar23 = (ulong)__name % (ulong)this_01;\n    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;\n  }\n  if (pp_Var19[uVar23] == (__bucket_type)0x0) {\n    p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;\n    if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }\n    pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;\n  }\n  else {\n    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;\n    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;\n  }\n  pLVar5 = (pDVar7->lock_).lock_;\n  psVar3 = &(pDVar7->caches_)._M_h._M_element_count;\n  *psVar3 = *psVar3 + 1;\n  (*pLVar5->_vptr_Lock_impl[3])();\n  return;\n}" { (declaration "_Hash_node_base *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (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) : :) (expression_statement "allocator<char>_>_9\n  *paVar2;" (binary_expression "allocator<char>_>_9\n  *paVar2" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n  *paVar2" identifier * identifier)) ;) (declaration "size_type *psVar3;" type_identifier (pointer_declarator "*psVar3" * identifier) ;) (declaration "_Hash_node_base *__name;" type_identifier (pointer_declarator "*__name" * identifier) ;) (declaration "_Hash_node_base *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "Lock_impl *pLVar5;" type_identifier (pointer_declarator "*pLVar5" * identifier) ;) (declaration "__bucket_type *pp_Var6;" type_identifier (pointer_declarator "*pp_Var6" * identifier) ;) (declaration "Dir_caches *pDVar7;" type_identifier (pointer_declarator "*pDVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Var10;" type_identifier (pointer_declarator "*p_Var10" * identifier) ;) (declaration "_Hash_node_base *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar12;" type_identifier (pointer_declarator "*pdVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "_Hash_node_base *p_Var14;" type_identifier (pointer_declarator "*p_Var14" * identifier) ;) (declaration "__node_base *p_Var15;" type_identifier (pointer_declarator "*p_Var15" * identifier) ;) (declaration "_Hash_node_base *p_Var16;" type_identifier (pointer_declarator "*p_Var16" * identifier) ;) (declaration "_Hash_node_base *p_Var17;" type_identifier (pointer_declarator "*p_Var17" * identifier) ;) (declaration "_Hash_node_base *p_Var18;" type_identifier (pointer_declarator "*p_Var18" * identifier) ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "__bucket_type *pp_Var19;" type_identifier (pointer_declarator "*pp_Var19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "_Hash_node_base *p_Var22;" type_identifier (pointer_declarator "*p_Var22" * identifier) ;) (declaration "ulong uVar23;" type_identifier identifier ;) (ERROR "_Hashtable_alloc<std::allocator<std::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : :) (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_00;" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_00" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (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 "_true>_>_>\n  *this_00" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (pointer_expression "*this_00" * identifier))) ;) (ERROR "_Hashtable_alloc<std::allocator<std::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : :) (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_01;" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *this_01" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (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 "_true>_>_>\n  *this_01" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (pointer_expression "*this_01" * identifier))) ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "__bucket_type p_Var25;" type_identifier identifier ;) (declaration "__bucket_type p_Var26;" type_identifier identifier ;) (declaration "ulong local_90;" type_identifier identifier ;) (ERROR "basic_string<char,_std::char_traits<char>,_std::" (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (expression_statement "allocator<char>_> local_58;" (binary_expression "allocator<char>_> local_58" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) ;) (expression_statement "pDVar7 = caches;" (assignment_expression "pDVar7 = caches" identifier = identifier) ;) (expression_statement "__name = (_Hash_node_base *)this->dir_;" (assignment_expression "__name = (_Hash_node_base *)this->dir_" identifier = (cast_expression "(_Hash_node_base *)this->dir_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "this->dir_" identifier -> field_identifier))) ;) (expression_statement "(*((caches->lock_).lock_)->_vptr_Lock_impl[2])();" (call_expression "(*((caches->lock_).lock_)->_vptr_Lock_impl[2])()" (parenthesized_expression "(*((caches->lock_).lock_)->_vptr_Lock_impl[2])" ( (pointer_expression "*((caches->lock_).lock_)->_vptr_Lock_impl[2]" * (subscript_expression "((caches->lock_).lock_)->_vptr_Lock_impl[2]" (field_expression "((caches->lock_).lock_)->_vptr_Lock_impl" (parenthesized_expression "((caches->lock_).lock_)" ( (field_expression "(caches->lock_).lock_" (parenthesized_expression "(caches->lock_)" ( (field_expression "caches->lock_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) (expression_statement "uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;" (assignment_expression "uVar24 = (pDVar7->caches_)._M_h._M_bucket_count" identifier = (field_expression "(pDVar7->caches_)._M_h._M_bucket_count" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar23 = (ulong)__name % uVar24;" (assignment_expression "uVar23 = (ulong)__name % uVar24" identifier = (binary_expression "(ulong)__name % uVar24" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];" (assignment_expression "p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23]" identifier = (subscript_expression "(pDVar7->caches_)._M_h._M_buckets[uVar23]" (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (p_Var26 != (__bucket_type)0x0) {\n    p_Var16 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var11 = p_Var26->_M_nxt;\n    do {\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    } while ((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));\n  }" if (parenthesized_expression "(p_Var26 != (__bucket_type)0x0)" ( (binary_expression "p_Var26 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n    p_Var16 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var11 = p_Var26->_M_nxt;\n    do {\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    } while ((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));\n  }" { (expression_statement "p_Var16 = p_Var26->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var16 = p_Var26->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var26->_M_nxt[1]._M_nxt" (subscript_expression "p_Var26->_M_nxt[1]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var11 = p_Var26->_M_nxt;" (assignment_expression "p_Var11 = p_Var26->_M_nxt" identifier = (field_expression "p_Var26->_M_nxt" identifier -> field_identifier)) ;) (do_statement "do {\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    } while ((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24));" do (compound_statement "{\n      p_Var25 = p_Var11;\n      if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      p_Var11 = p_Var25->_M_nxt;\n    }" { (expression_statement "p_Var25 = p_Var11;" (assignment_expression "p_Var25 = p_Var11" identifier = identifier) ;) (if_statement "if (__name == p_Var16) {\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" if (parenthesized_expression "(__name == p_Var16)" ( (binary_expression "__name == p_Var16" identifier == identifier) )) (compound_statement "{\n        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];\n        if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" { (expression_statement "p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];" (assignment_expression "p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3]" identifier = (subscript_expression "((pDVar7->lock_).lock_)->_vptr_Lock_impl[3]" (field_expression "((pDVar7->lock_).lock_)->_vptr_Lock_impl" (parenthesized_expression "((pDVar7->lock_).lock_)" ( (field_expression "(pDVar7->lock_).lock_" (parenthesized_expression "(pDVar7->lock_)" ( (field_expression "pDVar7->lock_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) ;) (if_statement "if ((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)) {\n          (*p_Var10)();\n          return;\n        }" if (parenthesized_expression "((p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var26->_M_nxt != (_Hash_node_base *)0x0) &&\n           (p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var26->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var26->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var26->_M_nxt[2]._M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var26->_M_nxt[2]._M_nxt" (subscript_expression "p_Var26->_M_nxt[2]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          (*p_Var10)();\n          return;\n        }" { (expression_statement "(*p_Var10)();" (call_expression "(*p_Var10)()" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0018445b;" goto statement_identifier ;) })) (expression_statement "p_Var11 = p_Var25->_M_nxt;" (assignment_expression "p_Var11 = p_Var25->_M_nxt" identifier = (field_expression "p_Var25->_M_nxt" identifier -> field_identifier)) ;) }) while (parenthesized_expression "((p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24))" ( (binary_expression "(p_Var11 != (_Hash_node_base *)0x0) &&\n            (p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24)" (parenthesized_expression "(p_Var11 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var11 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24)" ( (comma_expression "p_Var16 = p_Var11[1]._M_nxt, p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24" (assignment_expression "p_Var16 = p_Var11[1]._M_nxt" identifier = (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var26 = p_Var25, uVar23 == (ulong)p_Var16 % uVar24" (assignment_expression "p_Var26 = p_Var25" identifier = identifier) , (binary_expression "uVar23 == (ulong)p_Var16 % uVar24" identifier == (binary_expression "(ulong)p_Var16 % uVar24" (cast_expression "(ulong)p_Var16" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)))) ))) )) ;) })) (expression_statement "p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];" (assignment_expression "p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3]" identifier = (subscript_expression "((pDVar7->lock_).lock_)->_vptr_Lock_impl[3]" (field_expression "((pDVar7->lock_).lock_)->_vptr_Lock_impl" (parenthesized_expression "((pDVar7->lock_).lock_)" ( (field_expression "(pDVar7->lock_).lock_" (parenthesized_expression "(pDVar7->lock_)" ( (field_expression "pDVar7->lock_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) ;) (labeled_statement "LAB_0018445b:\n  (*p_Var10)();" statement_identifier : (expression_statement "(*p_Var10)();" (call_expression "(*p_Var10)()" (parenthesized_expression "(*p_Var10)" ( (pointer_expression "*p_Var10" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "p_Var11 = (_Hash_node_base *)operator_new(0x40);" (assignment_expression "p_Var11 = (_Hash_node_base *)operator_new(0x40)" identifier = (cast_expression "(_Hash_node_base *)operator_new(0x40)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "p_Var11->_M_nxt = __name;" (assignment_expression "p_Var11->_M_nxt = __name" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) = identifier) ;) (expression_statement "p_Var16 = p_Var11 + 7;" (assignment_expression "p_Var16 = p_Var11 + 7" identifier = (binary_expression "p_Var11 + 7" identifier + number_literal)) ;) (expression_statement "*(undefined1 (*) [16])(p_Var11 + 5) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(p_Var11 + 5) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(p_Var11 + 5)" * (cast_expression "(undefined1 (*) [16])(p_Var11 + 5)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(p_Var11 + 5)" ( (binary_expression "p_Var11 + 5" identifier + number_literal) )))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "p_Var16->_M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var16->_M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var16->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var11[1]._M_nxt = p_Var16;" (assignment_expression "p_Var11[1]._M_nxt = p_Var16" (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "p_Var11[2]._M_nxt = (_Hash_node_base *)0x1;" (assignment_expression "p_Var11[2]._M_nxt = (_Hash_node_base *)0x1" (field_expression "p_Var11[2]._M_nxt" (subscript_expression "p_Var11[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x1" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var11[3]._M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var11[4]._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var11[4]._M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var11[4]._M_nxt" (subscript_expression "p_Var11[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)&p_Var11[5]._M_nxt = 0x3f800000;" (assignment_expression "*(undefined4 *)&p_Var11[5]._M_nxt = 0x3f800000" (pointer_expression "*(undefined4 *)&p_Var11[5]._M_nxt" * (cast_expression "(undefined4 *)&p_Var11[5]._M_nxt" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p_Var11[5]._M_nxt" & (field_expression "p_Var11[5]._M_nxt" (subscript_expression "p_Var11[5]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "p_Var11[6]._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var11[6]._M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var11[6]._M_nxt" (subscript_expression "p_Var11[6]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__dirp = opendir((char *)__name);" (assignment_expression "__dirp = opendir((char *)__name)" identifier = (call_expression "opendir((char *)__name)" identifier (argument_list "((char *)__name)" ( (cast_expression "(char *)__name" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (__dirp == (DIR *)0x0) {\n    piVar20 = __errno_location();\n    iVar9 = *piVar20;\n    if ((iVar9 != 2) && (iVar9 != 0x14)) {\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }\n  }\n  else {\n    paVar2 = &local_58.field_2;\nLAB_001844e2:\n    pdVar12 = readdir64(__dirp);\n    if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar9 = closedir(__dirp);\n    if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }\n  }" if (parenthesized_expression "(__dirp == (DIR *)0x0)" ( (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar20 = __errno_location();\n    iVar9 = *piVar20;\n    if ((iVar9 != 2) && (iVar9 != 0x14)) {\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }\n  }" { (expression_statement "piVar20 = __errno_location();" (assignment_expression "piVar20 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = *piVar20;" (assignment_expression "iVar9 = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (if_statement "if ((iVar9 != 2) && (iVar9 != 0x14)) {\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }" if (parenthesized_expression "((iVar9 != 2) && (iVar9 != 0x14))" ( (binary_expression "(iVar9 != 2) && (iVar9 != 0x14)" (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) && (parenthesized_expression "(iVar9 != 0x14)" ( (binary_expression "iVar9 != 0x14" identifier != number_literal) ))) )) (compound_statement "{\n      pcVar21 = strerror(iVar9);\n      p_Var16 = p_Var11->_M_nxt;\n      format = (char *)gettext("%s: can not read directory: %s");\n      gold::gold_error(format,p_Var16,pcVar21);\n    }" { (expression_statement "pcVar21 = strerror(iVar9);" (assignment_expression "pcVar21 = strerror(iVar9)" identifier = (call_expression "strerror(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "p_Var16 = p_Var11->_M_nxt;" (assignment_expression "p_Var16 = p_Var11->_M_nxt" identifier = (field_expression "p_Var11->_M_nxt" identifier -> field_identifier)) ;) (expression_statement "format = (char *)gettext("%s: can not read directory: %s");" (assignment_expression "format = (char *)gettext("%s: can not read directory: %s")" identifier = (cast_expression "(char *)gettext("%s: can not read directory: %s")" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext("%s: can not read directory: %s")" identifier (argument_list "("%s: can not read directory: %s")" ( (string_literal ""%s: can not read directory: %s"" " string_content ") ))))) ;) (labeled_statement "gold::gold_error(format,p_Var16,pcVar21);" statement_identifier : (ERROR ":" :) (expression_statement "gold_error(format,p_Var16,pcVar21);" (call_expression "gold_error(format,p_Var16,pcVar21)" identifier (argument_list "(format,p_Var16,pcVar21)" ( identifier , identifier , identifier ))) ;)) })) }) (else_clause "else {\n    paVar2 = &local_58.field_2;\nLAB_001844e2:\n    pdVar12 = readdir64(__dirp);\n    if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar9 = closedir(__dirp);\n    if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }\n  }" else (compound_statement "{\n    paVar2 = &local_58.field_2;\nLAB_001844e2:\n    pdVar12 = readdir64(__dirp);\n    if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar9 = closedir(__dirp);\n    if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }\n  }" { (expression_statement "paVar2 = &local_58.field_2;" (assignment_expression "paVar2 = &local_58.field_2" identifier = (pointer_expression "&local_58.field_2" & (field_expression "local_58.field_2" identifier . field_identifier))) ;) (labeled_statement "LAB_001844e2:\n    pdVar12 = readdir64(__dirp);" statement_identifier : (expression_statement "pdVar12 = readdir64(__dirp);" (assignment_expression "pdVar12 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;)) (if_statement "if (pdVar12 != (dirent64 *)0x0) {\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(pdVar12 != (dirent64 *)0x0)" ( (binary_expression "pdVar12 != (dirent64 *)0x0" identifier != (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        pcVar21 = pdVar12->d_name;\n        local_58._M_dataplus._M_p = (pointer)paVar2;\n        sVar13 = strlen(pcVar21);\n        std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);\n        p_Var14 = (_Hash_node_base *)\n                  std::_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);\n        local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;\n        p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);\n        if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;\n        operator_delete(local_58._M_dataplus._M_p);\n        pdVar12 = readdir64(__dirp);\n        if (pdVar12 == (dirent64 *)0x0) break;\n      }" { (expression_statement "pcVar21 = pdVar12->d_name;" (assignment_expression "pcVar21 = pdVar12->d_name" identifier = (field_expression "pdVar12->d_name" identifier -> field_identifier)) ;) (expression_statement "local_58._M_dataplus._M_p = (pointer)paVar2;" (assignment_expression "local_58._M_dataplus._M_p = (pointer)paVar2" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "sVar13 = strlen(pcVar21);" (assignment_expression "sVar13 = strlen(pcVar21)" identifier = (call_expression "strlen(pcVar21)" identifier (argument_list "(pcVar21)" ( identifier )))) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n        _M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13);" (binary_expression "_M_construct<char_const*>(&local_58,pcVar21,pcVar21 + sVar13)" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*" *) > (parenthesized_expression "(&local_58,pcVar21,pcVar21 + sVar13)" ( (comma_expression "&local_58,pcVar21,pcVar21 + sVar13" (pointer_expression "&local_58" & identifier) , (comma_expression "pcVar21,pcVar21 + sVar13" identifier , (binary_expression "pcVar21 + sVar13" identifier + identifier))) ))) ;)) (ERROR "p_Var14 = (_Hash_node_base *)\n                  std::" (assignment_expression "p_Var14 = (_Hash_node_base *)\n                  std" identifier = (cast_expression "(_Hash_node_base *)\n                  std" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (expression_statement "_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907);" (call_expression "_Hash_bytes(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907)" identifier (argument_list "(local_58._M_dataplus._M_p,local_58._M_string_length,0xc70f6907)" ( (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) , (field_expression "local_58._M_string_length" identifier . field_identifier) , number_literal ))) ;) (expression_statement "local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt;" (assignment_expression "local_90 = (ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt" identifier = (binary_expression "(ulong)p_Var14 % (ulong)p_Var11[2]._M_nxt" (cast_expression "(ulong)p_Var14" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)p_Var11[2]._M_nxt" ( (type_descriptor "ulong" type_identifier) ) (field_expression "p_Var11[2]._M_nxt" (subscript_expression "p_Var11[2]" identifier [ number_literal ]) . field_identifier)))) ;) (ERROR "p_Var15 = std::\n                  _Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::" (assignment_expression "p_Var15 = std" identifier = identifier) : : (binary_expression "_Hashtable<std" identifier < identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (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>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (comma_expression "__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std" identifier (ERROR "::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>" : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : (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>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) >) , identifier) : : (binary_expression "hash<std" identifier < identifier) : : (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>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : :) (labeled_statement "__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);" statement_identifier (ERROR "::_Mod_range_hashing,_std:" : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) :) : (labeled_statement "__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);" statement_identifier (ERROR "::_Default_ranged_hash,_std:" : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) :) : (labeled_statement "__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);" statement_identifier (ERROR "::_Prime_rehash_policy,_std:" : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) :) : (labeled_statement "__detail::_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);" statement_identifier : (ERROR ":" :) (expression_statement "_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14);" (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14)" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14)" identifier , (binary_expression "_true>_>\n                  ::_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14)" (binary_expression "_true>_" identifier > identifier) > (ERROR "::" : :) (call_expression "_M_find_before_node\n                            ((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14)" identifier (argument_list "((_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1),local_90,&local_58,(__hash_code)p_Var14)" ( (call_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)(p_Var11 + 1)" (parenthesized_expression "(_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::_Hashtable_traits<true,_true,_true>_>\n                              *)" ( (ERROR "_Hashtable<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_std::allocator<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::hash<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::_Prime_rehash_policy,_std::__detail::" (comma_expression "_Hashtable<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable<std::__cxx11::basic_string<char" (binary_expression "_Hashtable<std" identifier < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>,_std" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Identity,_std" identifier , identifier) : : (binary_expression "equal_to<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : (binary_expression "hash<std" identifier < identifier) : : identifier : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : : (binary_expression "allocator<char>_>_>,_std" (binary_expression "allocator<char>_>_" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > identifier) > (ERROR "," ,) identifier) : : identifier : : (comma_expression "_Mod_range_hashing,_std" identifier , identifier) : : identifier : : (comma_expression "_Default_ranged_hash,_std" identifier , identifier) : : identifier : : (comma_expression "_Prime_rehash_policy,_std" identifier , identifier) : : identifier : :) (comma_expression "_Hashtable_traits<true,_true,_true>_>\n                              *" (binary_expression "_Hashtable_traits<true" identifier < true) , (comma_expression "_true,_true>_>\n                              *" identifier , (binary_expression "_true>_>\n                              *" (binary_expression "_true>_" identifier > identifier) > (pointer_expression "*" * identifier)))) )) (argument_list "(p_Var11 + 1)" ( (binary_expression "p_Var11 + 1" identifier + number_literal) ))) , identifier , (pointer_expression "&local_58" & identifier) , (cast_expression "(__hash_code)p_Var14" ( (type_descriptor "__hash_code" type_identifier) ) identifier) )))))) ;))))) (if_statement "if ((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)) {\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }" if (parenthesized_expression "((p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0))" ( (binary_expression "(p_Var15 == (__node_base *)0x0) || (p_Var15->_M_nxt == (_Hash_node_base *)0x0)" (parenthesized_expression "(p_Var15 == (__node_base *)0x0)" ( (binary_expression "p_Var15 == (__node_base *)0x0" identifier == (cast_expression "(__node_base *)0x0" ( (type_descriptor "__node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var15->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var15->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var15->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */\n          p_Var17 = (_Hash_node_base *)operator_new(0x30);\n          p_Var17->_M_nxt = (_Hash_node_base *)0x0;\n          p_Var17[1]._M_nxt = p_Var17 + 3;\n          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }\n          p_Var18 = p_Var11[4]._M_nxt;\n          p_Var22 = p_Var11[2]._M_nxt;\n          local_58.field_2._M_local_buf[0] = '\0';\n          p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;\n          local_58._M_string_length = 0;\n          local_58._M_dataplus._M_p = (pointer)paVar2;\n          cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);\n          if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }\n          p_Var17[5]._M_nxt = p_Var14;\n          p_Var14 = p_Var18 + local_90;\n          if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }\n          p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);\n        }" { comment (expression_statement "p_Var17 = (_Hash_node_base *)operator_new(0x30);" (assignment_expression "p_Var17 = (_Hash_node_base *)operator_new(0x30)" identifier = (cast_expression "(_Hash_node_base *)operator_new(0x30)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "p_Var17->_M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var17->_M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var17->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var17[1]._M_nxt = p_Var17 + 3;" (assignment_expression "p_Var17[1]._M_nxt = p_Var17 + 3" (field_expression "p_Var17[1]._M_nxt" (subscript_expression "p_Var17[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "p_Var17 + 3" identifier + number_literal)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2) {\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }\n          else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n               *)local_58._M_dataplus._M_p == paVar2" (binary_expression "allocator<char>_>_9\n               *)local_58._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)local_58._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (compound_statement "{\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n            p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;\n          }" { (expression_statement "p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);" (assignment_expression "p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" (field_expression "p_Var17[3]._M_nxt" (subscript_expression "p_Var17[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" identifier (argument_list "(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" ( (field_expression "local_58.field_2._M_allocated_capacity._1_7_" (field_expression "local_58.field_2._M_allocated_capacity" (field_expression "local_58.field_2" identifier . field_identifier) . field_identifier) . field_identifier) , (subscript_expression "local_58.field_2._M_local_buf[0]" (field_expression "local_58.field_2._M_local_buf" (field_expression "local_58.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) ))))) ;) (expression_statement "p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_;" (assignment_expression "p_Var17[4]._M_nxt = (_Hash_node_base *)local_58.field_2._8_8_" (field_expression "p_Var17[4]._M_nxt" (subscript_expression "p_Var17[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_58.field_2._8_8_" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_58.field_2._8_8_" (field_expression "local_58.field_2" identifier . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }" else (compound_statement "{\n            p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;\n            p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);\n          }" { (expression_statement "p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p;" (assignment_expression "p_Var17[1]._M_nxt = (_Hash_node_base *)local_58._M_dataplus._M_p" (field_expression "p_Var17[1]._M_nxt" (subscript_expression "p_Var17[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_58._M_dataplus._M_p" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) ;) (expression_statement "p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0]);" (assignment_expression "p_Var17[3]._M_nxt =\n                 (_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" (field_expression "p_Var17[3]._M_nxt" (subscript_expression "p_Var17[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)\n                 CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" identifier (argument_list "(local_58.field_2._M_allocated_capacity._1_7_,\n                          local_58.field_2._M_local_buf[0])" ( (field_expression "local_58.field_2._M_allocated_capacity._1_7_" (field_expression "local_58.field_2._M_allocated_capacity" (field_expression "local_58.field_2" identifier . field_identifier) . field_identifier) . field_identifier) , (subscript_expression "local_58.field_2._M_local_buf[0]" (field_expression "local_58.field_2._M_local_buf" (field_expression "local_58.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) ))))) ;) }))) (expression_statement "p_Var18 = p_Var11[4]._M_nxt;" (assignment_expression "p_Var18 = p_Var11[4]._M_nxt" identifier = (field_expression "p_Var11[4]._M_nxt" (subscript_expression "p_Var11[4]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var22 = p_Var11[2]._M_nxt;" (assignment_expression "p_Var22 = p_Var11[2]._M_nxt" identifier = (field_expression "p_Var11[2]._M_nxt" (subscript_expression "p_Var11[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "local_58.field_2._M_local_buf[0] = '\0';" (assignment_expression "local_58.field_2._M_local_buf[0] = '\0'" (subscript_expression "local_58.field_2._M_local_buf[0]" (field_expression "local_58.field_2._M_local_buf" (field_expression "local_58.field_2" identifier . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length;" (assignment_expression "p_Var17[2]._M_nxt = (_Hash_node_base *)local_58._M_string_length" (field_expression "p_Var17[2]._M_nxt" (subscript_expression "p_Var17[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)local_58._M_string_length" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_58._M_string_length" identifier . field_identifier))) ;) (expression_statement "local_58._M_string_length = 0;" (assignment_expression "local_58._M_string_length = 0" (field_expression "local_58._M_string_length" identifier . field_identifier) = number_literal) ;) (expression_statement "local_58._M_dataplus._M_p = (pointer)paVar2;" (assignment_expression "local_58._M_dataplus._M_p = (pointer)paVar2" (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) = (cast_expression "(pointer)paVar2" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (ERROR "cVar8 = std::" (assignment_expression "cVar8 = std" identifier = identifier) : :) (labeled_statement "__detail::_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);" statement_identifier : (ERROR ":" :) (labeled_statement "_Prime_rehash_policy::_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);" statement_identifier : (ERROR ":" :) (expression_statement "_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1);" (call_expression "_M_need_rehash\n                            ((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1)" identifier (argument_list "((_Prime_rehash_policy *)(p_Var11 + 5),(ulong)p_Var22,(ulong)p_Var18,1)" ( (cast_expression "(_Prime_rehash_policy *)(p_Var11 + 5)" ( (type_descriptor "_Prime_rehash_policy *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var11 + 5)" ( (binary_expression "p_Var11 + 5" identifier + number_literal) ))) , (cast_expression "(ulong)p_Var22" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)p_Var18" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal ))) ;))) (if_statement "if (cVar8 == '\0') {\n            p_Var18 = p_Var11[1]._M_nxt;\n          }\n          else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            p_Var18 = p_Var11[1]._M_nxt;\n          }" { (expression_statement "p_Var18 = p_Var11[1]._M_nxt;" (assignment_expression "p_Var18 = p_Var11[1]._M_nxt" identifier = (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }" else (compound_statement "{\n            if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }\nLAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }\n            p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;\n            p_Var11[1]._M_nxt = p_Var18;\n            local_90 = (ulong)p_Var14 % (ulong)this_00;\n          }" { (if_statement "if (this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1) {\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }\n            else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }" if (parenthesized_expression "(this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1)" ( (binary_expression "this_00 ==\n                (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1)" identifier == (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 *)0x1)" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>,_true>_>_>\n                 *)0x1" (binary_expression "allocator<char>_>,_true>_>_" (binary_expression "allocator<char>_>,_true>_" (binary_expression "allocator<char>_>,_true" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n              p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;\n              p_Var18 = p_Var16;\n            }" { (expression_statement "p_Var11[7]._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var11[7]._M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var11[7]._M_nxt" (subscript_expression "p_Var11[7]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var18 = p_Var16;" (assignment_expression "p_Var18 = p_Var16" identifier = identifier) ;) }) (else_clause "else {\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }" else (compound_statement "{\n                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */\n              p_Var18 = (_Hash_node_base *)\n                        std::__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);\n            }" { comment (ERROR "p_Var18 = (_Hash_node_base *)\n                        std::" (assignment_expression "p_Var18 = (_Hash_node_base *)\n                        std" identifier = (cast_expression "(_Hash_node_base *)\n                        std" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "__detail::\n                        _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);" statement_identifier (ERROR "::\n                        _Hashtable_alloc<std::allocator<std:" : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22);" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22)" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (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 "_true>_>_>\n                        ::_M_allocate_buckets(this_00,(size_t)p_Var22)" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets(this_00,(size_t)p_Var22)" identifier (argument_list "(this_00,(size_t)p_Var22)" ( identifier , (cast_expression "(size_t)p_Var22" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;)) }))) (expression_statement "p_Var22 = p_Var11[3]._M_nxt;" (assignment_expression "p_Var22 = p_Var11[3]._M_nxt" identifier = (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var11[3]._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var11[3]._M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (p_Var22 != (_Hash_node_base *)0x0) {\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }" if (parenthesized_expression "(p_Var22 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var22 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar24 = 0;\n              do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);\n            }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              } while (p_Var4 != (_Hash_node_base *)0x0);" do (compound_statement "{\n                while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }\n                p_Var22->_M_nxt = p_Var11[3]._M_nxt;\n                p_Var11[3]._M_nxt = p_Var22;\n                p_Var1->_M_nxt = p_Var11 + 3;\n                if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;\n                p_Var18[uVar24]._M_nxt = p_Var22;\n                p_Var22 = p_Var4;\n                uVar24 = uVar23;\n              }" { (while_statement "while( true ) {\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  p_Var4 = p_Var22->_M_nxt;\n                  uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;\n                  p_Var1 = p_Var18 + uVar23;\n                  if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;\n                  p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;\n                  p_Var1->_M_nxt->_M_nxt = p_Var22;\n                  uVar23 = uVar24;\nLAB_0018471c:\n                  p_Var22 = p_Var4;\n                  uVar24 = uVar23;\n                  if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;\n                }" { (expression_statement "p_Var4 = p_Var22->_M_nxt;" (assignment_expression "p_Var4 = p_Var22->_M_nxt" identifier = (field_expression "p_Var22->_M_nxt" identifier -> field_identifier)) ;) (expression_statement "uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00;" (assignment_expression "uVar23 = (ulong)p_Var22[5]._M_nxt % (ulong)this_00" identifier = (binary_expression "(ulong)p_Var22[5]._M_nxt % (ulong)this_00" (cast_expression "(ulong)p_Var22[5]._M_nxt" ( (type_descriptor "ulong" type_identifier) ) (field_expression "p_Var22[5]._M_nxt" (subscript_expression "p_Var22[5]" identifier [ number_literal ]) . field_identifier)) % (cast_expression "(ulong)this_00" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "p_Var1 = p_Var18 + uVar23;" (assignment_expression "p_Var1 = p_Var18 + uVar23" identifier = (binary_expression "p_Var18 + uVar23" identifier + identifier)) ;) (if_statement "if (p_Var1->_M_nxt == (_Hash_node_base *)0x0) break;" if (parenthesized_expression "(p_Var1->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var1->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var1->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt;" (assignment_expression "p_Var22->_M_nxt = p_Var1->_M_nxt->_M_nxt" (field_expression "p_Var22->_M_nxt" identifier -> field_identifier) = (field_expression "p_Var1->_M_nxt->_M_nxt" (field_expression "p_Var1->_M_nxt" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "p_Var1->_M_nxt->_M_nxt = p_Var22;" (assignment_expression "p_Var1->_M_nxt->_M_nxt = p_Var22" (field_expression "p_Var1->_M_nxt->_M_nxt" (field_expression "p_Var1->_M_nxt" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "uVar23 = uVar24;" (assignment_expression "uVar23 = uVar24" identifier = identifier) ;) (labeled_statement "LAB_0018471c:\n                  p_Var22 = p_Var4;" statement_identifier : (expression_statement "p_Var22 = p_Var4;" (assignment_expression "p_Var22 = p_Var4" identifier = identifier) ;)) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) (if_statement "if (p_Var4 == (_Hash_node_base *)0x0) goto LAB_00184768;" if (parenthesized_expression "(p_Var4 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00184768;" goto statement_identifier ;)) })) (expression_statement "p_Var22->_M_nxt = p_Var11[3]._M_nxt;" (assignment_expression "p_Var22->_M_nxt = p_Var11[3]._M_nxt" (field_expression "p_Var22->_M_nxt" identifier -> field_identifier) = (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var11[3]._M_nxt = p_Var22;" (assignment_expression "p_Var11[3]._M_nxt = p_Var22" (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "p_Var1->_M_nxt = p_Var11 + 3;" (assignment_expression "p_Var1->_M_nxt = p_Var11 + 3" (field_expression "p_Var1->_M_nxt" identifier -> field_identifier) = (binary_expression "p_Var11 + 3" identifier + number_literal)) ;) (if_statement "if (p_Var22->_M_nxt == (_Hash_node_base *)0x0) goto LAB_0018471c;" if (parenthesized_expression "(p_Var22->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var22->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var22->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0018471c;" goto statement_identifier ;)) (expression_statement "p_Var18[uVar24]._M_nxt = p_Var22;" (assignment_expression "p_Var18[uVar24]._M_nxt = p_Var22" (field_expression "p_Var18[uVar24]._M_nxt" (subscript_expression "p_Var18[uVar24]" identifier [ identifier ]) . field_identifier) = identifier) ;) (expression_statement "p_Var22 = p_Var4;" (assignment_expression "p_Var22 = p_Var4" identifier = identifier) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var4 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var4 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00184768:\n            if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }" statement_identifier : (if_statement "if (p_Var16 != p_Var11[1]._M_nxt) {\n              operator_delete(p_Var11[1]._M_nxt);\n            }" if (parenthesized_expression "(p_Var16 != p_Var11[1]._M_nxt)" ( (binary_expression "p_Var16 != p_Var11[1]._M_nxt" identifier != (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n              operator_delete(p_Var11[1]._M_nxt);\n            }" { (expression_statement "operator_delete(p_Var11[1]._M_nxt);" (call_expression "operator_delete(p_Var11[1]._M_nxt)" identifier (argument_list "(p_Var11[1]._M_nxt)" ( (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) ))) ;) }))) (expression_statement "p_Var11[2]._M_nxt = (_Hash_node_base *)this_00;" (assignment_expression "p_Var11[2]._M_nxt = (_Hash_node_base *)this_00" (field_expression "p_Var11[2]._M_nxt" (subscript_expression "p_Var11[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)this_00" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var11[1]._M_nxt = p_Var18;" (assignment_expression "p_Var11[1]._M_nxt = p_Var18" (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "local_90 = (ulong)p_Var14 % (ulong)this_00;" (assignment_expression "local_90 = (ulong)p_Var14 % (ulong)this_00" identifier = (binary_expression "(ulong)p_Var14 % (ulong)this_00" (cast_expression "(ulong)p_Var14" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)this_00" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) }))) (expression_statement "p_Var17[5]._M_nxt = p_Var14;" (assignment_expression "p_Var17[5]._M_nxt = p_Var14" (field_expression "p_Var17[5]._M_nxt" (subscript_expression "p_Var17[5]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "p_Var14 = p_Var18 + local_90;" (assignment_expression "p_Var14 = p_Var18 + local_90" identifier = (binary_expression "p_Var18 + local_90" identifier + identifier)) ;) (if_statement "if (p_Var14->_M_nxt == (_Hash_node_base *)0x0) {\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }\n          else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }" if (parenthesized_expression "(p_Var14->_M_nxt == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var14->_M_nxt == (_Hash_node_base *)0x0" (field_expression "p_Var14->_M_nxt" identifier -> field_identifier) == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            p_Var22 = p_Var11[3]._M_nxt;\n            p_Var11[3]._M_nxt = p_Var17;\n            p_Var17->_M_nxt = p_Var22;\n            if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }\n            p_Var14->_M_nxt = p_Var11 + 3;\n          }" { (expression_statement "p_Var22 = p_Var11[3]._M_nxt;" (assignment_expression "p_Var22 = p_Var11[3]._M_nxt" identifier = (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var11[3]._M_nxt = p_Var17;" (assignment_expression "p_Var11[3]._M_nxt = p_Var17" (field_expression "p_Var11[3]._M_nxt" (subscript_expression "p_Var11[3]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "p_Var17->_M_nxt = p_Var22;" (assignment_expression "p_Var17->_M_nxt = p_Var22" (field_expression "p_Var17->_M_nxt" identifier -> field_identifier) = identifier) ;) (if_statement "if (p_Var22 != (_Hash_node_base *)0x0) {\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }" if (parenthesized_expression "(p_Var22 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var22 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;\n            }" { (expression_statement "p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17;" (assignment_expression "p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt = p_Var17" (field_expression "p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]._M_nxt" (subscript_expression "p_Var18[(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt]" identifier [ (binary_expression "(ulong)p_Var22[5]._M_nxt % (ulong)p_Var11[2]._M_nxt" (cast_expression "(ulong)p_Var22[5]._M_nxt" ( (type_descriptor "ulong" type_identifier) ) (field_expression "p_Var22[5]._M_nxt" (subscript_expression "p_Var22[5]" identifier [ number_literal ]) . field_identifier)) % (cast_expression "(ulong)p_Var11[2]._M_nxt" ( (type_descriptor "ulong" type_identifier) ) (field_expression "p_Var11[2]._M_nxt" (subscript_expression "p_Var11[2]" identifier [ number_literal ]) . field_identifier))) ]) . field_identifier) = identifier) ;) })) (expression_statement "p_Var14->_M_nxt = p_Var11 + 3;" (assignment_expression "p_Var14->_M_nxt = p_Var11 + 3" (field_expression "p_Var14->_M_nxt" identifier -> field_identifier) = (binary_expression "p_Var11 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }" else (compound_statement "{\n            p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;\n            p_Var14->_M_nxt->_M_nxt = p_Var17;\n          }" { (expression_statement "p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt;" (assignment_expression "p_Var17->_M_nxt = p_Var14->_M_nxt->_M_nxt" (field_expression "p_Var17->_M_nxt" identifier -> field_identifier) = (field_expression "p_Var14->_M_nxt->_M_nxt" (field_expression "p_Var14->_M_nxt" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "p_Var14->_M_nxt->_M_nxt = p_Var17;" (assignment_expression "p_Var14->_M_nxt->_M_nxt = p_Var17" (field_expression "p_Var14->_M_nxt->_M_nxt" (field_expression "p_Var14->_M_nxt" identifier -> field_identifier) -> field_identifier) = identifier) ;) }))) (expression_statement "p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1);" (assignment_expression "p_Var11[4]._M_nxt = (_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1)" (field_expression "p_Var11[4]._M_nxt" (subscript_expression "p_Var11[4]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_Hash_node_base *)((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(p_Var11[4]._M_nxt)->_M_nxt + 1)" ( (binary_expression "(long)&(p_Var11[4]._M_nxt)->_M_nxt + 1" (cast_expression "(long)&(p_Var11[4]._M_nxt)->_M_nxt" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&(p_Var11[4]._M_nxt)->_M_nxt" & (field_expression "(p_Var11[4]._M_nxt)->_M_nxt" (parenthesized_expression "(p_Var11[4]._M_nxt)" ( (field_expression "p_Var11[4]._M_nxt" (subscript_expression "p_Var11[4]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + number_literal) )))) ;) })) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2) goto LAB_001844e2;" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)local_58._M_dataplus._M_p == paVar2" (binary_expression "allocator<char>_>_9\n             *)local_58._M_dataplus._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)local_58._M_dataplus._M_p" identifier * (ERROR ")" )) (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier))) == identifier) )) )) (goto_statement "goto LAB_001844e2;" goto statement_identifier ;)) (expression_statement "operator_delete(local_58._M_dataplus._M_p);" (call_expression "operator_delete(local_58._M_dataplus._M_p)" identifier (argument_list "(local_58._M_dataplus._M_p)" ( (field_expression "local_58._M_dataplus._M_p" (field_expression "local_58._M_dataplus" identifier . field_identifier) . field_identifier) ))) ;) (expression_statement "pdVar12 = readdir64(__dirp);" (assignment_expression "pdVar12 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar12 == (dirent64 *)0x0) break;" if (parenthesized_expression "(pdVar12 == (dirent64 *)0x0)" ( (binary_expression "pdVar12 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar9 = closedir(__dirp);" (assignment_expression "iVar9 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar20 = __errno_location();\n      pcVar21 = strerror(*piVar20);\n      gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);\n    }" { (expression_statement "piVar20 = __errno_location();" (assignment_expression "piVar20 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar21 = strerror(*piVar20);" (assignment_expression "pcVar21 = strerror(*piVar20)" identifier = (call_expression "strerror(*piVar20)" identifier (argument_list "(*piVar20)" ( (pointer_expression "*piVar20" * identifier) )))) ;) (labeled_statement "gold::gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);" statement_identifier : (ERROR ":" :) (expression_statement "gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21);" (call_expression "gold_warning("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21)" identifier (argument_list "("%s: closedir failed: %s",p_Var11->_M_nxt,pcVar21)" ( (string_literal ""%s: closedir failed: %s"" " string_content ") , (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) , identifier ))) ;)) })) }))) (expression_statement "(*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])();" (call_expression "(*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])()" (parenthesized_expression "(*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])" ( (pointer_expression "*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2]" * (subscript_expression "((pDVar7->lock_).lock_)->_vptr_Lock_impl[2]" (field_expression "((pDVar7->lock_).lock_)->_vptr_Lock_impl" (parenthesized_expression "((pDVar7->lock_).lock_)" ( (field_expression "(pDVar7->lock_).lock_" (parenthesized_expression "(pDVar7->lock_)" ( (field_expression "pDVar7->lock_" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) comment (expression_statement "p_Var16 = (_Hash_node_base *)operator_new(0x18);" (assignment_expression "p_Var16 = (_Hash_node_base *)operator_new(0x18)" identifier = (cast_expression "(_Hash_node_base *)operator_new(0x18)" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "uVar24 = (pDVar7->caches_)._M_h._M_bucket_count;" (assignment_expression "uVar24 = (pDVar7->caches_)._M_h._M_bucket_count" identifier = (field_expression "(pDVar7->caches_)._M_h._M_bucket_count" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var16[2]._M_nxt = p_Var11;" (assignment_expression "p_Var16[2]._M_nxt = p_Var11" (field_expression "p_Var16[2]._M_nxt" (subscript_expression "p_Var16[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "p_Var16->_M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "p_Var16->_M_nxt = (_Hash_node_base *)0x0" (field_expression "p_Var16->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var16[1]._M_nxt = __name;" (assignment_expression "p_Var16[1]._M_nxt = __name" (field_expression "p_Var16[1]._M_nxt" (subscript_expression "p_Var16[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "uVar23 = (ulong)__name % uVar24;" (assignment_expression "uVar23 = (ulong)__name % uVar24" identifier = (binary_expression "(ulong)__name % uVar24" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23];" (assignment_expression "p_Var26 = (pDVar7->caches_)._M_h._M_buckets[uVar23]" identifier = (subscript_expression "(pDVar7->caches_)._M_h._M_buckets[uVar23]" (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ])) ;) (if_statement "if (p_Var26 != (__bucket_type)0x0) {\n    p_Var11 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var14 = p_Var26->_M_nxt;\n    while (p_Var25 = p_Var14, __name != p_Var11) {\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }\n    if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }\n  }" if (parenthesized_expression "(p_Var26 != (__bucket_type)0x0)" ( (binary_expression "p_Var26 != (__bucket_type)0x0" identifier != (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n    p_Var11 = p_Var26->_M_nxt[1]._M_nxt;\n    p_Var14 = p_Var26->_M_nxt;\n    while (p_Var25 = p_Var14, __name != p_Var11) {\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }\n    if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }\n  }" { (expression_statement "p_Var11 = p_Var26->_M_nxt[1]._M_nxt;" (assignment_expression "p_Var11 = p_Var26->_M_nxt[1]._M_nxt" identifier = (field_expression "p_Var26->_M_nxt[1]._M_nxt" (subscript_expression "p_Var26->_M_nxt[1]" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var14 = p_Var26->_M_nxt;" (assignment_expression "p_Var14 = p_Var26->_M_nxt" identifier = (field_expression "p_Var26->_M_nxt" identifier -> field_identifier)) ;) (while_statement "while (p_Var25 = p_Var14, __name != p_Var11) {\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }" while (parenthesized_expression "(p_Var25 = p_Var14, __name != p_Var11)" ( (comma_expression "p_Var25 = p_Var14, __name != p_Var11" (assignment_expression "p_Var25 = p_Var14" identifier = identifier) , (binary_expression "__name != p_Var11" identifier != identifier)) )) (compound_statement "{\n      p_Var14 = p_Var25->_M_nxt;\n      if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;\n    }" { (expression_statement "p_Var14 = p_Var25->_M_nxt;" (assignment_expression "p_Var14 = p_Var25->_M_nxt" identifier = (field_expression "p_Var25->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if ((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))\n      goto LAB_00184868;" if (parenthesized_expression "((p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24))" ( (binary_expression "(p_Var14 == (_Hash_node_base *)0x0) ||\n         (p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24)" (parenthesized_expression "(p_Var14 == (_Hash_node_base *)0x0)" ( (binary_expression "p_Var14 == (_Hash_node_base *)0x0" identifier == (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24)" ( (comma_expression "p_Var11 = p_Var14[1]._M_nxt, p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24" (assignment_expression "p_Var11 = p_Var14[1]._M_nxt" identifier = (field_expression "p_Var14[1]._M_nxt" (subscript_expression "p_Var14[1]" identifier [ number_literal ]) . field_identifier)) , (comma_expression "p_Var26 = p_Var25, uVar23 != (ulong)p_Var11 % uVar24" (assignment_expression "p_Var26 = p_Var25" identifier = identifier) , (binary_expression "uVar23 != (ulong)p_Var11 % uVar24" identifier != (binary_expression "(ulong)p_Var11 % uVar24" (cast_expression "(ulong)p_Var11" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)))) ))) )) (goto_statement "goto LAB_00184868;" goto statement_identifier ;)) })) (if_statement "if (p_Var26->_M_nxt != (_Hash_node_base *)0x0) {\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }" if (parenthesized_expression "(p_Var26->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var26->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var26->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      operator_delete(p_Var16);\n                    /* WARNING: Subroutine does not return */\n      gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");\n    }" { (expression_statement "operator_delete(p_Var16);" (call_expression "operator_delete(p_Var16)" identifier (argument_list "(p_Var16)" ( identifier ))) ;) comment (labeled_statement "gold::do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add");" (call_expression "do_gold_unreachable("../../gold/dirsearch.cc",0x97,"add")" identifier (argument_list "("../../gold/dirsearch.cc",0x97,"add")" ( (string_literal ""../../gold/dirsearch.cc"" " string_content ") , number_literal , (string_literal ""add"" " string_content ") ))) ;)) })) })) (labeled_statement "LAB_00184868:\n                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */\n  cVar8 = std::__detail::_Prime_rehash_policy::_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);" statement_identifier : comment (ERROR "cVar8 = std::" (assignment_expression "cVar8 = std" identifier = identifier) : :) (labeled_statement "__detail::_Prime_rehash_policy::_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);" statement_identifier : (ERROR ":" :) (labeled_statement "_Prime_rehash_policy::_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);" statement_identifier : (ERROR ":" :) (expression_statement "_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1);" (call_expression "_M_need_rehash\n                    (&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1)" identifier (argument_list "(&(pDVar7->caches_)._M_h._M_rehash_policy,uVar24,\n                     (pDVar7->caches_)._M_h._M_element_count,1)" ( (pointer_expression "&(pDVar7->caches_)._M_h._M_rehash_policy" & (field_expression "(pDVar7->caches_)._M_h._M_rehash_policy" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , identifier , (field_expression "(pDVar7->caches_)._M_h._M_element_count" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) , number_literal ))) ;)))) (if_statement "if (cVar8 == '\0') {\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n  }\n  else {\n    if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }\n    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }\n    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;\n    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }\n    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;\n    uVar23 = (ulong)__name % (ulong)this_01;\n    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;\n  }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n  }" { (expression_statement "pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;" (assignment_expression "pp_Var19 = (pDVar7->caches_)._M_h._M_buckets" identifier = (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n    if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }\n    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }\n    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;\n    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }\n    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;\n    uVar23 = (ulong)__name % (ulong)this_01;\n    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;\n  }" else (compound_statement "{\n    if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }\n    p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;\n    if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }\n    pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;\n    if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }\n    (pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;\n    uVar23 = (ulong)__name % (ulong)this_01;\n    (pDVar7->caches_)._M_h._M_buckets = pp_Var19;\n  }" { (if_statement "if (this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1) {\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }\n    else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }" if (parenthesized_expression "(this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1)" ( (binary_expression "this_01 ==\n        (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1)" identifier == (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n         *)0x1)" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::" (comma_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char" (binary_expression "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>,_true>_>_>\n         *)0x1" (binary_expression "allocator<char>_>,_true>_>_" (binary_expression "allocator<char>_>,_true>_" (binary_expression "allocator<char>_>,_true" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (pointer_expression "*)0x1" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n      (pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;\n      pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;\n    }" { (expression_statement "(pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0;" (assignment_expression "(pDVar7->caches_)._M_h._M_single_bucket = (__bucket_type)0x0" (field_expression "(pDVar7->caches_)._M_h._M_single_bucket" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) ;) (expression_statement "pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket;" (assignment_expression "pp_Var19 = &(pDVar7->caches_)._M_h._M_single_bucket" identifier = (pointer_expression "&(pDVar7->caches_)._M_h._M_single_bucket" & (field_expression "(pDVar7->caches_)._M_h._M_single_bucket" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }" else (compound_statement "{\n                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */\n      pp_Var19 = std::__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);\n    }" { comment (ERROR "pp_Var19 = std::" (assignment_expression "pp_Var19 = std" identifier = identifier) : :) (labeled_statement "__detail::\n                 _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);" statement_identifier (ERROR "::\n                 _Hashtable_alloc<std::allocator<std:" : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24);" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24)" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (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 "_true>_>_>\n                 ::_M_allocate_buckets(this_01,uVar24)" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets(this_01,uVar24)" identifier (argument_list "(this_01,uVar24)" ( identifier , identifier ))))) ;)) }))) (expression_statement "p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;" (assignment_expression "p_Var11 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt" identifier = (field_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0;" (assignment_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt = (_Hash_node_base *)0x0" (field_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (p_Var11 != (_Hash_node_base *)0x0) {\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }" if (parenthesized_expression "(p_Var11 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var11 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar24 = 0;\n      do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);\n    }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      } while (p_Var14 != (_Hash_node_base *)0x0);" do (compound_statement "{\n        p_Var14 = p_Var11->_M_nxt;\n        uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;\n        pp_Var6 = pp_Var19 + uVar23;\n        if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }\n        p_Var11 = p_Var14;\n        uVar24 = uVar23;\n      }" { (expression_statement "p_Var14 = p_Var11->_M_nxt;" (assignment_expression "p_Var14 = p_Var11->_M_nxt" identifier = (field_expression "p_Var11->_M_nxt" identifier -> field_identifier)) ;) (expression_statement "uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01;" (assignment_expression "uVar23 = (ulong)p_Var11[1]._M_nxt % (ulong)this_01" identifier = (binary_expression "(ulong)p_Var11[1]._M_nxt % (ulong)this_01" (cast_expression "(ulong)p_Var11[1]._M_nxt" ( (type_descriptor "ulong" type_identifier) ) (field_expression "p_Var11[1]._M_nxt" (subscript_expression "p_Var11[1]" identifier [ number_literal ]) . field_identifier)) % (cast_expression "(ulong)this_01" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "pp_Var6 = pp_Var19 + uVar23;" (assignment_expression "pp_Var6 = pp_Var19 + uVar23" identifier = (binary_expression "pp_Var19 + uVar23" identifier + identifier)) ;) (if_statement "if (*pp_Var6 == (__bucket_type)0x0) {\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }\n        else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }" if (parenthesized_expression "(*pp_Var6 == (__bucket_type)0x0)" ( (binary_expression "*pp_Var6 == (__bucket_type)0x0" (pointer_expression "*pp_Var6" * identifier) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n          p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;\n          *pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;\n          if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }\n        }" { (expression_statement "p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;" (assignment_expression "p_Var11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) = (field_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "(pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11;" (assignment_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var11" (field_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "*pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin;" (assignment_expression "*pp_Var6 = &(pDVar7->caches_)._M_h._M_before_begin" (pointer_expression "*pp_Var6" * identifier) = (pointer_expression "&(pDVar7->caches_)._M_h._M_before_begin" & (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (p_Var11->_M_nxt != (_Hash_node_base *)0x0) {\n            pp_Var19[uVar24] = p_Var11;\n          }" if (parenthesized_expression "(p_Var11->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var11->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pp_Var19[uVar24] = p_Var11;\n          }" { (expression_statement "pp_Var19[uVar24] = p_Var11;" (assignment_expression "pp_Var19[uVar24] = p_Var11" (subscript_expression "pp_Var19[uVar24]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }" else (compound_statement "{\n          p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;\n          (*pp_Var6)->_M_nxt = p_Var11;\n          uVar23 = uVar24;\n        }" { (expression_statement "p_Var11->_M_nxt = (*pp_Var6)->_M_nxt;" (assignment_expression "p_Var11->_M_nxt = (*pp_Var6)->_M_nxt" (field_expression "p_Var11->_M_nxt" identifier -> field_identifier) = (field_expression "(*pp_Var6)->_M_nxt" (parenthesized_expression "(*pp_Var6)" ( (pointer_expression "*pp_Var6" * identifier) )) -> field_identifier)) ;) (expression_statement "(*pp_Var6)->_M_nxt = p_Var11;" (assignment_expression "(*pp_Var6)->_M_nxt = p_Var11" (field_expression "(*pp_Var6)->_M_nxt" (parenthesized_expression "(*pp_Var6)" ( (pointer_expression "*pp_Var6" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar23 = uVar24;" (assignment_expression "uVar23 = uVar24" identifier = identifier) ;) }))) (expression_statement "p_Var11 = p_Var14;" (assignment_expression "p_Var11 = p_Var14" identifier = identifier) ;) (expression_statement "uVar24 = uVar23;" (assignment_expression "uVar24 = uVar23" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var14 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var14 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "pp_Var6 = (pDVar7->caches_)._M_h._M_buckets;" (assignment_expression "pp_Var6 = (pDVar7->caches_)._M_h._M_buckets" identifier = (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket) {\n      operator_delete(pp_Var6);\n    }" if (parenthesized_expression "(pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket)" ( (binary_expression "pp_Var6 != &(pDVar7->caches_)._M_h._M_single_bucket" identifier != (pointer_expression "&(pDVar7->caches_)._M_h._M_single_bucket" & (field_expression "(pDVar7->caches_)._M_h._M_single_bucket" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) )) (compound_statement "{\n      operator_delete(pp_Var6);\n    }" { (expression_statement "operator_delete(pp_Var6);" (call_expression "operator_delete(pp_Var6)" identifier (argument_list "(pp_Var6)" ( identifier ))) ;) })) (expression_statement "(pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01;" (assignment_expression "(pDVar7->caches_)._M_h._M_bucket_count = (size_type)this_01" (field_expression "(pDVar7->caches_)._M_h._M_bucket_count" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(size_type)this_01" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "uVar23 = (ulong)__name % (ulong)this_01;" (assignment_expression "uVar23 = (ulong)__name % (ulong)this_01" identifier = (binary_expression "(ulong)__name % (ulong)this_01" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)this_01" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "(pDVar7->caches_)._M_h._M_buckets = pp_Var19;" (assignment_expression "(pDVar7->caches_)._M_h._M_buckets = pp_Var19" (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) }))) (if_statement "if (pp_Var19[uVar23] == (__bucket_type)0x0) {\n    p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;\n    if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }\n    pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;\n  }\n  else {\n    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;\n    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;\n  }" if (parenthesized_expression "(pp_Var19[uVar23] == (__bucket_type)0x0)" ( (binary_expression "pp_Var19[uVar23] == (__bucket_type)0x0" (subscript_expression "pp_Var19[uVar23]" identifier [ identifier ]) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n    p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;\n    pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;\n    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;\n    if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }\n    pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;\n  }" { (expression_statement "p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;" (assignment_expression "p_Var16->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "p_Var16->_M_nxt" identifier -> field_identifier) = (field_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "pp_Var19 = (pDVar7->caches_)._M_h._M_buckets;" (assignment_expression "pp_Var19 = (pDVar7->caches_)._M_h._M_buckets" identifier = (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16;" (assignment_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt = p_Var16" (field_expression "(pDVar7->caches_)._M_h._M_before_begin._M_nxt" (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (p_Var16->_M_nxt != (_Hash_node_base *)0x0) {\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }" if (parenthesized_expression "(p_Var16->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var16->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var16->_M_nxt" identifier -> field_identifier) != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;\n    }" { (expression_statement "pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16;" (assignment_expression "pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = p_Var16" (subscript_expression "pp_Var19[(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count]" identifier [ (binary_expression "(ulong)p_Var16->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count" (cast_expression "(ulong)p_Var16->_M_nxt[1]._M_nxt" ( (type_descriptor "ulong" type_identifier) ) (field_expression "p_Var16->_M_nxt[1]._M_nxt" (subscript_expression "p_Var16->_M_nxt[1]" (field_expression "p_Var16->_M_nxt" identifier -> field_identifier) [ number_literal ]) . field_identifier)) % (field_expression "(pDVar7->caches_)._M_h._M_bucket_count" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ]) = identifier) ;) })) (expression_statement "pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin;" (assignment_expression "pp_Var19[uVar23] = &(pDVar7->caches_)._M_h._M_before_begin" (subscript_expression "pp_Var19[uVar23]" identifier [ identifier ]) = (pointer_expression "&(pDVar7->caches_)._M_h._M_before_begin" & (field_expression "(pDVar7->caches_)._M_h._M_before_begin" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;\n    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;\n  }" else (compound_statement "{\n    p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;\n    (pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;\n  }" { (expression_statement "p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt;" (assignment_expression "p_Var16->_M_nxt = pp_Var19[uVar23]->_M_nxt" (field_expression "p_Var16->_M_nxt" identifier -> field_identifier) = (field_expression "pp_Var19[uVar23]->_M_nxt" (subscript_expression "pp_Var19[uVar23]" identifier [ identifier ]) -> field_identifier)) ;) (expression_statement "(pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16;" (assignment_expression "(pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt = p_Var16" (field_expression "(pDVar7->caches_)._M_h._M_buckets[uVar23]->_M_nxt" (subscript_expression "(pDVar7->caches_)._M_h._M_buckets[uVar23]" (field_expression "(pDVar7->caches_)._M_h._M_buckets" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ identifier ]) -> field_identifier) = identifier) ;) }))) (expression_statement "pLVar5 = (pDVar7->lock_).lock_;" (assignment_expression "pLVar5 = (pDVar7->lock_).lock_" identifier = (field_expression "(pDVar7->lock_).lock_" (parenthesized_expression "(pDVar7->lock_)" ( (field_expression "pDVar7->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "psVar3 = &(pDVar7->caches_)._M_h._M_element_count;" (assignment_expression "psVar3 = &(pDVar7->caches_)._M_h._M_element_count" identifier = (pointer_expression "&(pDVar7->caches_)._M_h._M_element_count" & (field_expression "(pDVar7->caches_)._M_h._M_element_count" (field_expression "(pDVar7->caches_)._M_h" (parenthesized_expression "(pDVar7->caches_)" ( (field_expression "pDVar7->caches_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*psVar3 = *psVar3 + 1;" (assignment_expression "*psVar3 = *psVar3 + 1" (pointer_expression "*psVar3" * identifier) = (binary_expression "*psVar3 + 1" (pointer_expression "*psVar3" * identifier) + number_literal)) ;) (expression_statement "(*pLVar5->_vptr_Lock_impl[3])();" (call_expression "(*pLVar5->_vptr_Lock_impl[3])()" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[3]" * (subscript_expression "pLVar5->_vptr_Lock_impl[3]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001843b0(long param_1)\n\n{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    \n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}\n\n" (function_definition "void FUN_001843b0(long param_1)\n\n{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    \n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}" primitive_type (function_declarator "FUN_001843b0(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    \n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}" { (declaration "char *__name;" primitive_type (pointer_declarator "*__name" * identifier) ;) (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined8 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar8;" type_identifier (pointer_declarator "*pdVar8" * identifier) ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "long *plVar11;" (sized_type_specifier "long" long) (pointer_declarator "*plVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong extraout_RDX;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong extraout_RDX_00;" type_identifier identifier ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "ulong local_90;" type_identifier identifier ;) (declaration "undefined1 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "long local_50;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_48;" type_identifier identifier ;) (declaration "undefined7 uStack_47;" type_identifier identifier ;) (declaration "long lStack_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "puVar3 = DAT_00458950;" (assignment_expression "puVar3 = DAT_00458950" identifier = identifier) ;) (expression_statement "__name = *(char **)(param_1 + 0x38);" (assignment_expression "__name = *(char **)(param_1 + 0x38)" identifier = (pointer_expression "*(char **)(param_1 + 0x38)" * (cast_expression "(char **)(param_1 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(*(long *)*DAT_00458950 + 0x10))();" (call_expression "(**(code **)(*(long *)*DAT_00458950 + 0x10))()" (parenthesized_expression "(**(code **)(*(long *)*DAT_00458950 + 0x10))" ( (pointer_expression "**(code **)(*(long *)*DAT_00458950 + 0x10)" * (pointer_expression "*(code **)(*(long *)*DAT_00458950 + 0x10)" * (cast_expression "(code **)(*(long *)*DAT_00458950 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*DAT_00458950 + 0x10)" ( (binary_expression "*(long *)*DAT_00458950 + 0x10" (pointer_expression "*(long *)*DAT_00458950" * (cast_expression "(long *)*DAT_00458950" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00458950" * identifier))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar17 = (ulong)__name % (ulong)puVar3[2];" (assignment_expression "uVar17 = (ulong)__name % (ulong)puVar3[2]" identifier = (binary_expression "(ulong)__name % (ulong)puVar3[2]" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)puVar3[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar3[2]" identifier [ number_literal ])))) ;) (expression_statement "plVar10 = *(long **)(puVar3[1] + uVar17 * 8);" (assignment_expression "plVar10 = *(long **)(puVar3[1] + uVar17 * 8)" identifier = (pointer_expression "*(long **)(puVar3[1] + uVar17 * 8)" * (cast_expression "(long **)(puVar3[1] + uVar17 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[1] + uVar17 * 8)" ( (binary_expression "puVar3[1] + uVar17 * 8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) + (binary_expression "uVar17 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }" { (expression_statement "pcVar16 = (char *)((long *)*plVar10)[1];" (assignment_expression "pcVar16 = (char *)((long *)*plVar10)[1]" identifier = (cast_expression "(char *)((long *)*plVar10)[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((long *)*plVar10)[1]" (parenthesized_expression "((long *)*plVar10)" ( (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier)) )) [ number_literal ]))) ;) (expression_statement "plVar11 = (long *)*plVar10;" (assignment_expression "plVar11 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (do_statement "do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));" do (compound_statement "{\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    }" { (expression_statement "plVar20 = plVar11;" (assignment_expression "plVar20 = plVar11" identifier = identifier) ;) (if_statement "if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" if (parenthesized_expression "(__name == pcVar16)" ( (binary_expression "__name == pcVar16" identifier == identifier) )) (compound_statement "{\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" { (expression_statement "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);" (assignment_expression "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18)" identifier = (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x18)" ( (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }" if (parenthesized_expression "((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0))" ( (binary_expression "(*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)" (parenthesized_expression "(*plVar10 != 0)" ( (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" * identifier) != number_literal) )) && (parenthesized_expression "(*(long *)(*plVar10 + 0x10) != 0)" ( (binary_expression "*(long *)(*plVar10 + 0x10) != 0" (pointer_expression "*(long *)(*plVar10 + 0x10)" * (cast_expression "(long *)(*plVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar10 + 0x10)" ( (binary_expression "*plVar10 + 0x10" (pointer_expression "*plVar10" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          (*pcVar6)();\n          return;\n        }" { (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0018445b;" goto statement_identifier ;) })) (expression_statement "plVar11 = (long *)*plVar20;" (assignment_expression "plVar11 = (long *)*plVar20" identifier = (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier))) ;) }) while (parenthesized_expression "((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]))" ( (binary_expression "(plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2])" (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2])" ( (comma_expression "pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (assignment_expression "pcVar16 = (char *)plVar11[1]" identifier = (cast_expression "(char *)plVar11[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar11[1]" identifier [ number_literal ]))) , (comma_expression "plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (assignment_expression "plVar10 = plVar20" identifier = identifier) , (binary_expression "uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" identifier == (binary_expression "(ulong)pcVar16 % (ulong)puVar3[2]" (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) % (cast_expression "(ulong)puVar3[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar3[2]" identifier [ number_literal ])))))) ))) )) ;) })) (expression_statement "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);" (assignment_expression "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18)" identifier = (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x18)" ( (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0018445b:\n  (*pcVar6)();" statement_identifier : (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar7 = (undefined8 *)FUN_002ee780(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002ee780(0x40)" identifier = (cast_expression "(undefined8 *)FUN_002ee780(0x40)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002ee780(0x40)" identifier (argument_list "(0x40)" ( number_literal ))))) ;) (expression_statement "*puVar7 = __name;" (assignment_expression "*puVar7 = __name" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar14 = puVar7 + 7;" (assignment_expression "puVar14 = puVar7 + 7" identifier = (binary_expression "puVar7 + 7" identifier + number_literal)) ;) (expression_statement "*(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(puVar7 + 5)" * (cast_expression "(undefined1 (*) [16])(puVar7 + 5)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = puVar14;" (assignment_expression "puVar7[1] = puVar14" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = 1;" (assignment_expression "puVar7[2] = 1" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar7 + 5) = 0x3f800000;" (assignment_expression "*(undefined4 *)(puVar7 + 5) = 0x3f800000" (pointer_expression "*(undefined4 *)(puVar7 + 5)" * (cast_expression "(undefined4 *)(puVar7 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 5)" ( (binary_expression "puVar7 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__dirp = opendir(__name);" (assignment_expression "__dirp = opendir(__name)" identifier = (call_expression "opendir(__name)" identifier (argument_list "(__name)" ( identifier )))) ;) (if_statement "if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" if (parenthesized_expression "(__dirp == (DIR *)0x0)" ( (binary_expression "__dirp == (DIR *)0x0" identifier == (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }" { (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *piVar15;" (assignment_expression "iVar5 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (if_statement "if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }" if (parenthesized_expression "((iVar5 != 2) && (iVar5 != 0x14))" ( (binary_expression "(iVar5 != 2) && (iVar5 != 0x14)" (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) && (parenthesized_expression "(iVar5 != 0x14)" ( (binary_expression "iVar5 != 0x14" identifier != number_literal) ))) )) (compound_statement "{\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }" { (expression_statement "pcVar16 = strerror(iVar5);" (assignment_expression "pcVar16 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "uVar1 = *puVar7;" (assignment_expression "uVar1 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar13 = gettext("%s: can not read directory: %s");" (assignment_expression "uVar13 = gettext("%s: can not read directory: %s")" identifier = (call_expression "gettext("%s: can not read directory: %s")" identifier (argument_list "("%s: can not read directory: %s")" ( (string_literal ""%s: can not read directory: %s"" " string_content ") )))) ;) (expression_statement "FUN_00185680(uVar13,uVar1,pcVar16);" (call_expression "FUN_00185680(uVar13,uVar1,pcVar16)" identifier (argument_list "(uVar13,uVar1,pcVar16)" ( identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" else (compound_statement "{\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" { (labeled_statement "LAB_001844e2:\n    pdVar8 = readdir64(__dirp);" statement_identifier : (expression_statement "pdVar8 = readdir64(__dirp);" (assignment_expression "pdVar8 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;)) (if_statement "if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(pdVar8 != (dirent64 *)0x0)" ( (binary_expression "pdVar8 != (dirent64 *)0x0" identifier != (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      }" { (expression_statement "pcVar16 = pdVar8->d_name;" (assignment_expression "pcVar16 = pdVar8->d_name" identifier = (field_expression "pdVar8->d_name" identifier -> field_identifier)) ;) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "sVar9 = strlen(pcVar16);" (assignment_expression "sVar9 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);" (call_expression "FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9)" identifier (argument_list "(&local_58,pcVar16,pcVar16 + sVar9)" ( (pointer_expression "&local_58" & identifier) , identifier , (binary_expression "pcVar16 + sVar9" identifier + identifier) ))) ;) (expression_statement "uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);" (assignment_expression "uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907)" identifier = (call_expression "FUN_002ee800(local_58,local_50,0xc70f6907)" identifier (argument_list "(local_58,local_50,0xc70f6907)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_90 = uVar17 % (ulong)puVar7[2];" (assignment_expression "local_90 = uVar17 % (ulong)puVar7[2]" identifier = (binary_expression "uVar17 % (ulong)puVar7[2]" identifier % (cast_expression "(ulong)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ])))) ;) (expression_statement "plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);" (assignment_expression "plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" identifier = (cast_expression "(long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" identifier (argument_list "(puVar7 + 1,local_90,&local_58,uVar17)" ( (binary_expression "puVar7 + 1" identifier + number_literal) , identifier , (pointer_expression "&local_58" & identifier) , identifier ))))) ;) (if_statement "if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }" if (parenthesized_expression "((plVar10 == (long *)0x0) || (*plVar10 == 0))" ( (binary_expression "(plVar10 == (long *)0x0) || (*plVar10 == 0)" (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*plVar10 == 0)" ( (binary_expression "*plVar10 == 0" (pointer_expression "*plVar10" * identifier) == number_literal) ))) )) (compound_statement "{\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }" { (expression_statement "plVar10 = (long *)FUN_002ee780(0x30);" (assignment_expression "plVar10 = (long *)FUN_002ee780(0x30)" identifier = (cast_expression "(long *)FUN_002ee780(0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002ee780(0x30)" identifier (argument_list "(0x30)" ( number_literal ))))) ;) (expression_statement "*plVar10 = 0;" (assignment_expression "*plVar10 = 0" (pointer_expression "*plVar10" * identifier) = number_literal) ;) (expression_statement "plVar10[1] = (long)(plVar10 + 3);" (assignment_expression "plVar10[1] = (long)(plVar10 + 3)" (subscript_expression "plVar10[1]" identifier [ number_literal ]) = (cast_expression "(long)(plVar10 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(plVar10 + 3)" ( (binary_expression "plVar10 + 3" identifier + number_literal) )))) ;) (if_statement "if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (compound_statement "{\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }" { (expression_statement "plVar10[3] = CONCAT71(uStack_47,local_48);" (assignment_expression "plVar10[3] = CONCAT71(uStack_47,local_48)" (subscript_expression "plVar10[3]" identifier [ number_literal ]) = (call_expression "CONCAT71(uStack_47,local_48)" identifier (argument_list "(uStack_47,local_48)" ( identifier , identifier )))) ;) (expression_statement "plVar10[4] = lStack_40;" (assignment_expression "plVar10[4] = lStack_40" (subscript_expression "plVar10[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" else (compound_statement "{\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" { (expression_statement "plVar10[1] = (long)local_58;" (assignment_expression "plVar10[1] = (long)local_58" (subscript_expression "plVar10[1]" identifier [ number_literal ]) = (cast_expression "(long)local_58" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "plVar10[3] = CONCAT71(uStack_47,local_48);" (assignment_expression "plVar10[3] = CONCAT71(uStack_47,local_48)" (subscript_expression "plVar10[3]" identifier [ number_literal ]) = (call_expression "CONCAT71(uStack_47,local_48)" identifier (argument_list "(uStack_47,local_48)" ( identifier , identifier )))) ;) }))) (expression_statement "uVar1 = puVar7[4];" (assignment_expression "uVar1 = puVar7[4]" identifier = (subscript_expression "puVar7[4]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar7[2];" (assignment_expression "uVar13 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "plVar10[2] = local_50;" (assignment_expression "plVar10[2] = local_50" (subscript_expression "plVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);" (assignment_expression "cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1)" identifier = (call_expression "FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1)" identifier (argument_list "(puVar7 + 5,uVar13,uVar1,1)" ( (binary_expression "puVar7 + 5" identifier + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            puVar12 = (undefined8 *)puVar7[1];\n          }" { (expression_statement "puVar12 = (undefined8 *)puVar7[1];" (assignment_expression "puVar12 = (undefined8 *)puVar7[1]" identifier = (cast_expression "(undefined8 *)puVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" else (compound_statement "{\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" { (if_statement "if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }" if (parenthesized_expression "(extraout_RDX == 1)" ( (binary_expression "extraout_RDX == 1" identifier == number_literal) )) (compound_statement "{\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }" { (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" identifier = identifier) ;) }) (else_clause "else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }" else (compound_statement "{\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }" { (expression_statement "puVar12 = (undefined8 *)FUN_00184130();" (assignment_expression "puVar12 = (undefined8 *)FUN_00184130()" identifier = (cast_expression "(undefined8 *)FUN_00184130()" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00184130()" identifier (argument_list "()" ( ))))) ;) }))) (expression_statement "plVar11 = (long *)puVar7[3];" (assignment_expression "plVar11 = (long *)puVar7[3]" identifier = (cast_expression "(long *)puVar7[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }" if (parenthesized_expression "(plVar11 != (long *)0x0)" ( (binary_expression "plVar11 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);" do (compound_statement "{\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              }" { (while_statement "while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }" { (expression_statement "plVar21 = (long *)*plVar11;" (assignment_expression "plVar21 = (long *)*plVar11" identifier = (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier))) ;) (expression_statement "uVar19 = (ulong)plVar11[5] % extraout_RDX;" (assignment_expression "uVar19 = (ulong)plVar11[5] % extraout_RDX" identifier = (binary_expression "(ulong)plVar11[5] % extraout_RDX" (cast_expression "(ulong)plVar11[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar11[5]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "plVar20 = puVar12 + uVar19;" (assignment_expression "plVar20 = puVar12 + uVar19" identifier = (binary_expression "puVar12 + uVar19" identifier + identifier)) ;) (if_statement "if ((long *)*plVar20 == (long *)0x0) break;" if (parenthesized_expression "((long *)*plVar20 == (long *)0x0)" ( (binary_expression "(long *)*plVar20 == (long *)0x0" (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*plVar11 = *(long *)*plVar20;" (assignment_expression "*plVar11 = *(long *)*plVar20" (pointer_expression "*plVar11" * identifier) = (pointer_expression "*(long *)*plVar20" * (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)))) ;) (expression_statement "*(long **)*plVar20 = plVar11;" (assignment_expression "*(long **)*plVar20 = plVar11" (pointer_expression "*(long **)*plVar20" * (cast_expression "(long **)*plVar20" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar20" * identifier))) = identifier) ;) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" identifier = identifier) ;) (labeled_statement "LAB_0018471c:\n                  plVar11 = plVar21;" statement_identifier : (expression_statement "plVar11 = plVar21;" (assignment_expression "plVar11 = plVar21" identifier = identifier) ;)) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" identifier = identifier) ;) (if_statement "if (plVar21 == (long *)0x0) goto LAB_00184768;" if (parenthesized_expression "(plVar21 == (long *)0x0)" ( (binary_expression "plVar21 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00184768;" goto statement_identifier ;)) })) (expression_statement "*plVar11 = puVar7[3];" (assignment_expression "*plVar11 = puVar7[3]" (pointer_expression "*plVar11" * identifier) = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = plVar11;" (assignment_expression "puVar7[3] = plVar11" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*plVar20 = (long)(puVar7 + 3);" (assignment_expression "*plVar20 = (long)(puVar7 + 3)" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)(puVar7 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) ;) (if_statement "if (*plVar11 == 0) goto LAB_0018471c;" if (parenthesized_expression "(*plVar11 == 0)" ( (binary_expression "*plVar11 == 0" (pointer_expression "*plVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0018471c;" goto statement_identifier ;)) (expression_statement "puVar12[uVar18] = plVar11;" (assignment_expression "puVar12[uVar18] = plVar11" (subscript_expression "puVar12[uVar18]" identifier [ identifier ]) = identifier) ;) (expression_statement "plVar11 = plVar21;" (assignment_expression "plVar11 = plVar21" identifier = identifier) ;) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" identifier = identifier) ;) }) while (parenthesized_expression "(plVar21 != (long *)0x0)" ( (binary_expression "plVar21 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }" statement_identifier : (if_statement "if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }" if (parenthesized_expression "(puVar14 != (undefined8 *)puVar7[1])" ( (binary_expression "puVar14 != (undefined8 *)puVar7[1]" identifier != (cast_expression "(undefined8 *)puVar7[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) )) (compound_statement "{\n              FUN_002eff50();\n            }" { (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "puVar7[2] = extraout_RDX;" (assignment_expression "puVar7[2] = extraout_RDX" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[1] = puVar12;" (assignment_expression "puVar7[1] = puVar12" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_90 = uVar17 % extraout_RDX;" (assignment_expression "local_90 = uVar17 % extraout_RDX" identifier = (binary_expression "uVar17 % extraout_RDX" identifier % identifier)) ;) }))) (expression_statement "plVar10[5] = uVar17;" (assignment_expression "plVar10[5] = uVar17" (subscript_expression "plVar10[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "plVar11 = puVar12 + local_90;" (assignment_expression "plVar11 = puVar12 + local_90" identifier = (binary_expression "puVar12 + local_90" identifier + identifier)) ;) (if_statement "if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" if (parenthesized_expression "((long *)*plVar11 == (long *)0x0)" ( (binary_expression "(long *)*plVar11 == (long *)0x0" (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }" { (expression_statement "lVar2 = puVar7[3];" (assignment_expression "lVar2 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = plVar10;" (assignment_expression "puVar7[3] = plVar10" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*plVar10 = lVar2;" (assignment_expression "*plVar10 = lVar2" (pointer_expression "*plVar10" * identifier) = identifier) ;) (if_statement "if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }" if (parenthesized_expression "(lVar2 != 0)" ( (binary_expression "lVar2 != 0" identifier != number_literal) )) (compound_statement "{\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }" { (expression_statement "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;" (assignment_expression "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10" (subscript_expression "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]]" identifier [ (binary_expression "*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]" (pointer_expression "*(ulong *)(lVar2 + 0x28)" * (cast_expression "(ulong *)(lVar2 + 0x28)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar2 + 0x28)" ( (binary_expression "lVar2 + 0x28" identifier + number_literal) )))) % (cast_expression "(ulong)puVar7[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ]))) ]) = identifier) ;) })) (expression_statement "*plVar11 = (long)(puVar7 + 3);" (assignment_expression "*plVar11 = (long)(puVar7 + 3)" (pointer_expression "*plVar11" * identifier) = (cast_expression "(long)(puVar7 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) ;) }) (else_clause "else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" else (compound_statement "{\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" { (expression_statement "*plVar10 = *(long *)*plVar11;" (assignment_expression "*plVar10 = *(long *)*plVar11" (pointer_expression "*plVar10" * identifier) = (pointer_expression "*(long *)*plVar11" * (cast_expression "(long *)*plVar11" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar11" * identifier)))) ;) (expression_statement "*(long **)*plVar11 = plVar10;" (assignment_expression "*(long **)*plVar11 = plVar10" (pointer_expression "*(long **)*plVar11" * (cast_expression "(long **)*plVar11" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar11" * identifier))) = identifier) ;) }))) (expression_statement "puVar7[4] = puVar7[4] + 1;" (assignment_expression "puVar7[4] = puVar7[4] + 1" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (binary_expression "puVar7[4] + 1" (subscript_expression "puVar7[4]" identifier [ number_literal ]) + number_literal)) ;) })) (if_statement "if (local_58 == &local_48) goto LAB_001844e2;" if (parenthesized_expression "(local_58 == &local_48)" ( (binary_expression "local_58 == &local_48" identifier == (pointer_expression "&local_48" & identifier)) )) (goto_statement "goto LAB_001844e2;" goto statement_identifier ;)) (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) (expression_statement "pdVar8 = readdir64(__dirp);" (assignment_expression "pdVar8 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar8 == (dirent64 *)0x0) break;" if (parenthesized_expression "(pdVar8 == (dirent64 *)0x0)" ( (binary_expression "pdVar8 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar5 = closedir(__dirp);" (assignment_expression "iVar5 = closedir(__dirp)" identifier = (call_expression "closedir(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }" { (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = strerror(*piVar15);" (assignment_expression "pcVar16 = strerror(*piVar15)" identifier = (call_expression "strerror(*piVar15)" identifier (argument_list "(*piVar15)" ( (pointer_expression "*piVar15" * identifier) )))) ;) (expression_statement "FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);" (call_expression "FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16)" identifier (argument_list "("%s: closedir failed: %s",*puVar7,pcVar16)" ( (string_literal ""%s: closedir failed: %s"" " string_content ") , (pointer_expression "*puVar7" * identifier) , identifier ))) ;) })) }))) (expression_statement "(**(code **)(*(long *)*puVar3 + 0x10))();" (call_expression "(**(code **)(*(long *)*puVar3 + 0x10))()" (parenthesized_expression "(**(code **)(*(long *)*puVar3 + 0x10))" ( (pointer_expression "**(code **)(*(long *)*puVar3 + 0x10)" * (pointer_expression "*(code **)(*(long *)*puVar3 + 0x10)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x10)" ( (binary_expression "*(long *)*puVar3 + 0x10" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "plVar11 = (long *)FUN_002ee780(0x18);" (assignment_expression "plVar11 = (long *)FUN_002ee780(0x18)" identifier = (cast_expression "(long *)FUN_002ee780(0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002ee780(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "uVar17 = puVar3[2];" (assignment_expression "uVar17 = puVar3[2]" identifier = (subscript_expression "puVar3[2]" identifier [ number_literal ])) ;) (expression_statement "plVar11[2] = (long)puVar7;" (assignment_expression "plVar11[2] = (long)puVar7" (subscript_expression "plVar11[2]" identifier [ number_literal ]) = (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "*plVar11 = 0;" (assignment_expression "*plVar11 = 0" (pointer_expression "*plVar11" * identifier) = number_literal) ;) (expression_statement "plVar11[1] = (long)__name;" (assignment_expression "plVar11[1] = (long)__name" (subscript_expression "plVar11[1]" identifier [ number_literal ]) = (cast_expression "(long)__name" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "uVar18 = (ulong)__name % uVar17;" (assignment_expression "uVar18 = (ulong)__name % uVar17" identifier = (binary_expression "(ulong)__name % uVar17" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "plVar10 = *(long **)(puVar3[1] + uVar18 * 8);" (assignment_expression "plVar10 = *(long **)(puVar3[1] + uVar18 * 8)" identifier = (pointer_expression "*(long **)(puVar3[1] + uVar18 * 8)" * (cast_expression "(long **)(puVar3[1] + uVar18 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[1] + uVar18 * 8)" ( (binary_expression "puVar3[1] + uVar18 * 8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) + (binary_expression "uVar18 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }" { (expression_statement "pcVar16 = (char *)((long *)*plVar10)[1];" (assignment_expression "pcVar16 = (char *)((long *)*plVar10)[1]" identifier = (cast_expression "(char *)((long *)*plVar10)[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "((long *)*plVar10)[1]" (parenthesized_expression "((long *)*plVar10)" ( (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier)) )) [ number_literal ]))) ;) (expression_statement "plVar20 = (long *)*plVar10;" (assignment_expression "plVar20 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (while_statement "while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }" while (parenthesized_expression "(plVar21 = plVar20, __name != pcVar16)" ( (comma_expression "plVar21 = plVar20, __name != pcVar16" (assignment_expression "plVar21 = plVar20" identifier = identifier) , (binary_expression "__name != pcVar16" identifier != identifier)) )) (compound_statement "{\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }" { (expression_statement "plVar20 = (long *)*plVar21;" (assignment_expression "plVar20 = (long *)*plVar21" identifier = (cast_expression "(long *)*plVar21" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar21" * identifier))) ;) (if_statement "if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;" if (parenthesized_expression "((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))" ( (binary_expression "(plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17)" (parenthesized_expression "(plVar20 == (long *)0x0)" ( (binary_expression "plVar20 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17)" ( (comma_expression "pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17" (assignment_expression "pcVar16 = (char *)plVar20[1]" identifier = (cast_expression "(char *)plVar20[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar20[1]" identifier [ number_literal ]))) , (comma_expression "plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17" (assignment_expression "plVar10 = plVar21" identifier = identifier) , (binary_expression "uVar18 != (ulong)pcVar16 % uVar17" identifier != (binary_expression "(ulong)pcVar16 % uVar17" (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)))) ))) )) (goto_statement "goto LAB_00184868;" goto statement_identifier ;)) })) (if_statement "if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }" if (parenthesized_expression "(*plVar10 != 0)" ( (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" * identifier) != number_literal) )) (compound_statement "{\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }" { (expression_statement "FUN_002eff50(plVar11);" (call_expression "FUN_002eff50(plVar11)" identifier (argument_list "(plVar11)" ( identifier ))) ;) (expression_statement "FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);" (call_expression "FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f)" identifier (argument_list "("../../gold/dirsearch.cc",0x97,&DAT_0038903f)" ( (string_literal ""../../gold/dirsearch.cc"" " string_content ") , number_literal , (pointer_expression "&DAT_0038903f" & identifier) ))) ;) })) })) (labeled_statement "LAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);" statement_identifier : (expression_statement "cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);" (assignment_expression "cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1)" identifier = (call_expression "FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1)" identifier (argument_list "(puVar3 + 5,uVar17,puVar3[4],1)" ( (binary_expression "puVar3 + 5" identifier + number_literal) , identifier , (subscript_expression "puVar3[4]" identifier [ number_literal ]) , number_literal )))) ;)) (if_statement "if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar14 = (undefined8 *)puVar3[1];\n  }" { (expression_statement "puVar14 = (undefined8 *)puVar3[1];" (assignment_expression "puVar14 = (undefined8 *)puVar3[1]" identifier = (cast_expression "(undefined8 *)puVar3[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" else (compound_statement "{\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" { (if_statement "if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" if (parenthesized_expression "(extraout_RDX_00 == 1)" ( (binary_expression "extraout_RDX_00 == 1" identifier == number_literal) )) (compound_statement "{\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }" { (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar14 = puVar3 + 7;" (assignment_expression "puVar14 = puVar3 + 7" identifier = (binary_expression "puVar3 + 7" identifier + number_literal)) ;) }) (else_clause "else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" else (compound_statement "{\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" { (expression_statement "puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);" (assignment_expression "puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00)" identifier = (cast_expression "(undefined8 *)FUN_00184130(extraout_RDX_00)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00184130(extraout_RDX_00)" identifier (argument_list "(extraout_RDX_00)" ( identifier ))))) ;) }))) (expression_statement "plVar10 = (long *)puVar3[3];" (assignment_expression "plVar10 = (long *)puVar3[3]" identifier = (cast_expression "(long *)puVar3[3]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }" if (parenthesized_expression "(plVar10 != (long *)0x0)" ( (binary_expression "plVar10 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);" do (compound_statement "{\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      }" { (expression_statement "plVar21 = (long *)*plVar10;" (assignment_expression "plVar21 = (long *)*plVar10" identifier = (cast_expression "(long *)*plVar10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar10" * identifier))) ;) (expression_statement "uVar18 = (ulong)plVar10[1] % extraout_RDX_00;" (assignment_expression "uVar18 = (ulong)plVar10[1] % extraout_RDX_00" identifier = (binary_expression "(ulong)plVar10[1] % extraout_RDX_00" (cast_expression "(ulong)plVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "plVar10[1]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "plVar20 = puVar14 + uVar18;" (assignment_expression "plVar20 = puVar14 + uVar18" identifier = (binary_expression "puVar14 + uVar18" identifier + identifier)) ;) (if_statement "if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" if (parenthesized_expression "((long *)*plVar20 == (long *)0x0)" ( (binary_expression "(long *)*plVar20 == (long *)0x0" (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }" { (expression_statement "*plVar10 = puVar3[3];" (assignment_expression "*plVar10 = puVar3[3]" (pointer_expression "*plVar10" * identifier) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = plVar10;" (assignment_expression "puVar3[3] = plVar10" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*plVar20 = (long)(puVar3 + 3);" (assignment_expression "*plVar20 = (long)(puVar3 + 3)" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)(puVar3 + 3)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(puVar3 + 3)" ( (binary_expression "puVar3 + 3" identifier + number_literal) )))) ;) (if_statement "if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }" if (parenthesized_expression "(*plVar10 != 0)" ( (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" * identifier) != number_literal) )) (compound_statement "{\n            puVar14[uVar17] = plVar10;\n          }" { (expression_statement "puVar14[uVar17] = plVar10;" (assignment_expression "puVar14[uVar17] = plVar10" (subscript_expression "puVar14[uVar17]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" else (compound_statement "{\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" { (expression_statement "*plVar10 = *(long *)*plVar20;" (assignment_expression "*plVar10 = *(long *)*plVar20" (pointer_expression "*plVar10" * identifier) = (pointer_expression "*(long *)*plVar20" * (cast_expression "(long *)*plVar20" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar20" * identifier)))) ;) (expression_statement "*(long **)*plVar20 = plVar10;" (assignment_expression "*(long **)*plVar20 = plVar10" (pointer_expression "*(long **)*plVar20" * (cast_expression "(long **)*plVar20" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*plVar20" * identifier))) = identifier) ;) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" identifier = identifier) ;) }))) (expression_statement "plVar10 = plVar21;" (assignment_expression "plVar10 = plVar21" identifier = identifier) ;) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "(plVar21 != (long *)0x0)" ( (binary_expression "plVar21 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }" if (parenthesized_expression "((undefined8 *)puVar3[1] != puVar3 + 7)" ( (binary_expression "(undefined8 *)puVar3[1] != puVar3 + 7" (cast_expression "(undefined8 *)puVar3[1]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[1]" identifier [ number_literal ])) != (binary_expression "puVar3 + 7" identifier + number_literal)) )) (compound_statement "{\n      FUN_002eff50();\n    }" { (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "puVar3[2] = extraout_RDX_00;" (assignment_expression "puVar3[2] = extraout_RDX_00" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar18 = (ulong)__name % extraout_RDX_00;" (assignment_expression "uVar18 = (ulong)__name % extraout_RDX_00" identifier = (binary_expression "(ulong)__name % extraout_RDX_00" (cast_expression "(ulong)__name" ( (type_descriptor "ulong" type_identifier) ) identifier) % identifier)) ;) (expression_statement "puVar3[1] = puVar14;" (assignment_expression "puVar3[1] = puVar14" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" if (parenthesized_expression "((long *)puVar14[uVar18] == (long *)0x0)" ( (binary_expression "(long *)puVar14[uVar18] == (long *)0x0" (cast_expression "(long *)puVar14[uVar18]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[uVar18]" identifier [ identifier ])) == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }" { (expression_statement "*plVar11 = puVar3[3];" (assignment_expression "*plVar11 = puVar3[3]" (pointer_expression "*plVar11" * identifier) = (subscript_expression "puVar3[3]" identifier [ number_literal ])) ;) (expression_statement "lVar2 = puVar3[1];" (assignment_expression "lVar2 = puVar3[1]" identifier = (subscript_expression "puVar3[1]" identifier [ number_literal ])) ;) (expression_statement "puVar3[3] = plVar11;" (assignment_expression "puVar3[3] = plVar11" (subscript_expression "puVar3[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }" if (parenthesized_expression "(*plVar11 != 0)" ( (binary_expression "*plVar11 != 0" (pointer_expression "*plVar11" * identifier) != number_literal) )) (compound_statement "{\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }" { (expression_statement "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;" (assignment_expression "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11" (pointer_expression "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" * (cast_expression "(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" ( (binary_expression "lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8" identifier + (binary_expression "(*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8" (parenthesized_expression "(*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2])" ( (binary_expression "*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]" (pointer_expression "*(ulong *)(*plVar11 + 8)" * (cast_expression "(ulong *)(*plVar11 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*plVar11 + 8)" ( (binary_expression "*plVar11 + 8" (pointer_expression "*plVar11" * identifier) + number_literal) )))) % (cast_expression "(ulong)puVar3[2]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar3[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) })) (expression_statement "*(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;" (assignment_expression "*(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3" (pointer_expression "*(undefined8 **)(lVar2 + uVar18 * 8)" * (cast_expression "(undefined8 **)(lVar2 + uVar18 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar2 + uVar18 * 8)" ( (binary_expression "lVar2 + uVar18 * 8" identifier + (binary_expression "uVar18 * 8" identifier * number_literal)) )))) = (binary_expression "puVar3 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" else (compound_statement "{\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" { (expression_statement "*plVar11 = *(long *)puVar14[uVar18];" (assignment_expression "*plVar11 = *(long *)puVar14[uVar18]" (pointer_expression "*plVar11" * identifier) = (pointer_expression "*(long *)puVar14[uVar18]" * (cast_expression "(long *)puVar14[uVar18]" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar14[uVar18]" identifier [ identifier ])))) ;) (expression_statement "**(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;" (assignment_expression "**(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11" (pointer_expression "**(undefined8 **)(puVar3[1] + uVar18 * 8)" * (pointer_expression "*(undefined8 **)(puVar3[1] + uVar18 * 8)" * (cast_expression "(undefined8 **)(puVar3[1] + uVar18 * 8)" ( (type_descriptor "undefined8 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3[1] + uVar18 * 8)" ( (binary_expression "puVar3[1] + uVar18 * 8" (subscript_expression "puVar3[1]" identifier [ number_literal ]) + (binary_expression "uVar18 * 8" identifier * number_literal)) ))))) = identifier) ;) }))) (expression_statement "puVar3[4] = puVar3[4] + 1;" (assignment_expression "puVar3[4] = puVar3[4] + 1" (subscript_expression "puVar3[4]" identifier [ number_literal ]) = (binary_expression "puVar3[4] + 1" (subscript_expression "puVar3[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(**(code **)(*(long *)*puVar3 + 0x18))();" (call_expression "(**(code **)(*(long *)*puVar3 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*puVar3 + 0x18))" ( (pointer_expression "**(code **)(*(long *)*puVar3 + 0x18)" * (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" * (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)*puVar3 + 0x18)" ( (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" * (cast_expression "(long *)*puVar3" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))))) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 ]) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) % IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % (cast_expression ( (type_descriptor TYPE) ) (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) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (pointer_expression * IDENT) , IDENT ))) ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT)))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) ))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) % IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (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) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ])) == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) % (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) * LIT)) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ])))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001843b0(long param_1)\n\n{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    \n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001843b0(long param_1)" (identifier "FUN_001843b0") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  char *__name;\n  undefined8 uVar1;\n  long lVar2;\n  undefined8 *puVar3;\n  char cVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined8 *puVar7;\n  DIR *__dirp;\n  dirent64 *pdVar8;\n  size_t sVar9;\n  long *plVar10;\n  long *plVar11;\n  undefined8 *puVar12;\n  undefined8 uVar13;\n  undefined8 *puVar14;\n  int *piVar15;\n  char *pcVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong extraout_RDX;\n  ulong uVar19;\n  ulong extraout_RDX_00;\n  long *plVar20;\n  long *plVar21;\n  ulong local_90;\n  undefined1 *local_58;\n  long local_50;\n  undefined1 local_48;\n  undefined7 uStack_47;\n  long lStack_40;\n  \n  puVar3 = DAT_00458950;\n  __name = *(char **)(param_1 + 0x38);\n  (**(code **)(*(long *)*DAT_00458950 + 0x10))();\n  uVar17 = (ulong)__name % (ulong)puVar3[2];\n  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }\n  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\nLAB_0018445b:\n  (*pcVar6)();\n  puVar7 = (undefined8 *)FUN_002ee780(0x40);\n  *puVar7 = __name;\n  puVar14 = puVar7 + 7;\n  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;\n  *puVar14 = 0;\n  puVar7[1] = puVar14;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[4] = 0;\n  *(undefined4 *)(puVar7 + 5) = 0x3f800000;\n  puVar7[6] = 0;\n  __dirp = opendir(__name);\n  if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }\n  (**(code **)(*(long *)*puVar3 + 0x10))();\n                    \n  plVar11 = (long *)FUN_002ee780(0x18);\n  uVar17 = puVar3[2];\n  plVar11[2] = (long)puVar7;\n  *plVar11 = 0;\n  plVar11[1] = (long)__name;\n  uVar18 = (ulong)__name % uVar17;\n  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);\n  if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }\nLAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);\n  if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }\n  if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }\n  puVar3[4] = puVar3[4] + 1;\n  (**(code **)(*(long *)*puVar3 + 0x18))();\n  return;\n}" ({ "{") (declaration "char *__name;" (primitive_type "char") (pointer_declarator "*__name" (* "*") (identifier "__name")) (; ";")) (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "undefined8 *puVar3;" (type_identifier "undefined8") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined8 *puVar7;" (type_identifier "undefined8") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "DIR *__dirp;" (type_identifier "DIR") (pointer_declarator "*__dirp" (* "*") (identifier "__dirp")) (; ";")) (declaration "dirent64 *pdVar8;" (type_identifier "dirent64") (pointer_declarator "*pdVar8" (* "*") (identifier "pdVar8")) (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "long *plVar11;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar11" (* "*") (identifier "plVar11")) (; ";")) (declaration "undefined8 *puVar12;" (type_identifier "undefined8") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined8 uVar13;" (type_identifier "undefined8") (identifier "uVar13") (; ";")) (declaration "undefined8 *puVar14;" (type_identifier "undefined8") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "ulong uVar17;" (type_identifier "ulong") (identifier "uVar17") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "ulong extraout_RDX;" (type_identifier "ulong") (identifier "extraout_RDX") (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "ulong extraout_RDX_00;" (type_identifier "ulong") (identifier "extraout_RDX_00") (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "long *plVar21;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar21" (* "*") (identifier "plVar21")) (; ";")) (declaration "ulong local_90;" (type_identifier "ulong") (identifier "local_90") (; ";")) (declaration "undefined1 *local_58;" (type_identifier "undefined1") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "long local_50;" (sized_type_specifier "long" (long "long")) (identifier "local_50") (; ";")) (declaration "undefined1 local_48;" (type_identifier "undefined1") (identifier "local_48") (; ";")) (declaration "undefined7 uStack_47;" (type_identifier "undefined7") (identifier "uStack_47") (; ";")) (declaration "long lStack_40;" (sized_type_specifier "long" (long "long")) (identifier "lStack_40") (; ";")) (expression_statement "puVar3 = DAT_00458950;" (assignment_expression "puVar3 = DAT_00458950" (identifier "puVar3") (= "=") (identifier "DAT_00458950")) (; ";")) (expression_statement "__name = *(char **)(param_1 + 0x38);" (assignment_expression "__name = *(char **)(param_1 + 0x38)" (identifier "__name") (= "=") (pointer_expression "*(char **)(param_1 + 0x38)" (* "*") (cast_expression "(char **)(param_1 + 0x38)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "(**(code **)(*(long *)*DAT_00458950 + 0x10))();" (call_expression "(**(code **)(*(long *)*DAT_00458950 + 0x10))()" (parenthesized_expression "(**(code **)(*(long *)*DAT_00458950 + 0x10))" (( "(") (pointer_expression "**(code **)(*(long *)*DAT_00458950 + 0x10)" (* "*") (pointer_expression "*(code **)(*(long *)*DAT_00458950 + 0x10)" (* "*") (cast_expression "(code **)(*(long *)*DAT_00458950 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*DAT_00458950 + 0x10)" (( "(") (binary_expression "*(long *)*DAT_00458950 + 0x10" (pointer_expression "*(long *)*DAT_00458950" (* "*") (cast_expression "(long *)*DAT_00458950" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00458950" (* "*") (identifier "DAT_00458950")))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar17 = (ulong)__name % (ulong)puVar3[2];" (assignment_expression "uVar17 = (ulong)__name % (ulong)puVar3[2]" (identifier "uVar17") (= "=") (binary_expression "(ulong)__name % (ulong)puVar3[2]" (cast_expression "(ulong)__name" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "__name")) (% "%") (cast_expression "(ulong)puVar3[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "plVar10 = *(long **)(puVar3[1] + uVar17 * 8);" (assignment_expression "plVar10 = *(long **)(puVar3[1] + uVar17 * 8)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(puVar3[1] + uVar17 * 8)" (* "*") (cast_expression "(long **)(puVar3[1] + uVar17 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3[1] + uVar17 * 8)" (( "(") (binary_expression "puVar3[1] + uVar17 * 8" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "uVar17 * 8" (identifier "uVar17") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }" (if "if") (parenthesized_expression "(plVar10 != (long *)0x0)" (( "(") (binary_expression "plVar10 != (long *)0x0" (identifier "plVar10") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar11 = (long *)*plVar10;\n    do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));\n  }" ({ "{") (expression_statement "pcVar16 = (char *)((long *)*plVar10)[1];" (assignment_expression "pcVar16 = (char *)((long *)*plVar10)[1]" (identifier "pcVar16") (= "=") (cast_expression "(char *)((long *)*plVar10)[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((long *)*plVar10)[1]" (parenthesized_expression "((long *)*plVar10)" (( "(") (cast_expression "(long *)*plVar10" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar10" (* "*") (identifier "plVar10"))) () ")")) ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "plVar11 = (long *)*plVar10;" (assignment_expression "plVar11 = (long *)*plVar10" (identifier "plVar11") (= "=") (cast_expression "(long *)*plVar10" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")))) (; ";")) (do_statement "do {\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    } while ((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));" (do "do") (compound_statement "{\n      plVar20 = plVar11;\n      if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }\n      plVar11 = (long *)*plVar20;\n    }" ({ "{") (expression_statement "plVar20 = plVar11;" (assignment_expression "plVar20 = plVar11" (identifier "plVar20") (= "=") (identifier "plVar11")) (; ";")) (if_statement "if (__name == pcVar16) {\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" (if "if") (parenthesized_expression "(__name == pcVar16)" (( "(") (binary_expression "__name == pcVar16" (identifier "__name") (== "==") (identifier "pcVar16")) () ")")) (compound_statement "{\n        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);\n        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }\n        goto LAB_0018445b;\n      }" ({ "{") (expression_statement "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);" (assignment_expression "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" (* "*") (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*puVar3 + 0x18)" (( "(") (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" (* "*") (cast_expression "(long *)*puVar3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {\n          (*pcVar6)();\n          return;\n        }" (if "if") (parenthesized_expression "((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0))" (( "(") (binary_expression "(*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)" (parenthesized_expression "(*plVar10 != 0)" (( "(") (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(*plVar10 + 0x10) != 0)" (( "(") (binary_expression "*(long *)(*plVar10 + 0x10) != 0" (pointer_expression "*(long *)(*plVar10 + 0x10)" (* "*") (cast_expression "(long *)(*plVar10 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar10 + 0x10)" (( "(") (binary_expression "*plVar10 + 0x10" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          (*pcVar6)();\n          return;\n        }" ({ "{") (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0018445b;" (goto "goto") (statement_identifier "LAB_0018445b") (; ";")) (} "}"))) (expression_statement "plVar11 = (long *)*plVar20;" (assignment_expression "plVar11 = (long *)*plVar20" (identifier "plVar11") (= "=") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]))" (( "(") (binary_expression "(plVar11 != (long *)0x0) &&\n            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2])" (parenthesized_expression "(plVar11 != (long *)0x0)" (( "(") (binary_expression "plVar11 != (long *)0x0" (identifier "plVar11") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2])" (( "(") (comma_expression "pcVar16 = (char *)plVar11[1], plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (assignment_expression "pcVar16 = (char *)plVar11[1]" (identifier "pcVar16") (= "=") (cast_expression "(char *)plVar11[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar11[1]" (identifier "plVar11") ([ "[") (number_literal "1") (] "]")))) (, ",") (comma_expression "plVar10 = plVar20,\n            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (assignment_expression "plVar10 = plVar20" (identifier "plVar10") (= "=") (identifier "plVar20")) (, ",") (binary_expression "uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]" (identifier "uVar17") (== "==") (binary_expression "(ulong)pcVar16 % (ulong)puVar3[2]" (cast_expression "(ulong)pcVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar16")) (% "%") (cast_expression "(ulong)puVar3[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]"))))))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);" (assignment_expression "pcVar6 = *(code **)(*(long *)*puVar3 + 0x18)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" (* "*") (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*puVar3 + 0x18)" (( "(") (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" (* "*") (cast_expression "(long *)*puVar3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (labeled_statement "LAB_0018445b:\n  (*pcVar6)();" (statement_identifier "LAB_0018445b") (: ":") (expression_statement "(*pcVar6)();" (call_expression "(*pcVar6)()" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "puVar7 = (undefined8 *)FUN_002ee780(0x40);" (assignment_expression "puVar7 = (undefined8 *)FUN_002ee780(0x40)" (identifier "puVar7") (= "=") (cast_expression "(undefined8 *)FUN_002ee780(0x40)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002ee780(0x40)" (identifier "FUN_002ee780") (argument_list "(0x40)" (( "(") (number_literal "0x40") () ")"))))) (; ";")) (expression_statement "*puVar7 = __name;" (assignment_expression "*puVar7 = __name" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "__name")) (; ";")) (expression_statement "puVar14 = puVar7 + 7;" (assignment_expression "puVar14 = puVar7 + 7" (identifier "puVar14") (= "=") (binary_expression "puVar7 + 7" (identifier "puVar7") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "*(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])(puVar7 + 5)" (* "*") (cast_expression "(undefined1 (*) [16])(puVar7 + 5)" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (parenthesized_expression "(puVar7 + 5)" (( "(") (binary_expression "puVar7 + 5" (identifier "puVar7") (+ "+") (number_literal "5")) () ")")))) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*puVar14 = 0;" (assignment_expression "*puVar14 = 0" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[1] = puVar14;" (assignment_expression "puVar7[1] = puVar14" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "puVar7[2] = 1;" (assignment_expression "puVar7[2] = 1" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar7 + 5) = 0x3f800000;" (assignment_expression "*(undefined4 *)(puVar7 + 5) = 0x3f800000" (pointer_expression "*(undefined4 *)(puVar7 + 5)" (* "*") (cast_expression "(undefined4 *)(puVar7 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 5)" (( "(") (binary_expression "puVar7 + 5" (identifier "puVar7") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "0x3f800000")) (; ";")) (expression_statement "puVar7[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__dirp = opendir(__name);" (assignment_expression "__dirp = opendir(__name)" (identifier "__dirp") (= "=") (call_expression "opendir(__name)" (identifier "opendir") (argument_list "(__name)" (( "(") (identifier "__name") () ")")))) (; ";")) (if_statement "if (__dirp == (DIR *)0x0) {\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }\n  else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" (if "if") (parenthesized_expression "(__dirp == (DIR *)0x0)" (( "(") (binary_expression "__dirp == (DIR *)0x0" (identifier "__dirp") (== "==") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar15 = __errno_location();\n    iVar5 = *piVar15;\n    if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }\n  }" ({ "{") (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" (identifier "piVar15") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = *piVar15;" (assignment_expression "iVar5 = *piVar15" (identifier "iVar5") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (if_statement "if ((iVar5 != 2) && (iVar5 != 0x14)) {\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }" (if "if") (parenthesized_expression "((iVar5 != 2) && (iVar5 != 0x14))" (( "(") (binary_expression "(iVar5 != 2) && (iVar5 != 0x14)" (parenthesized_expression "(iVar5 != 2)" (( "(") (binary_expression "iVar5 != 2" (identifier "iVar5") (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 != 0x14)" (( "(") (binary_expression "iVar5 != 0x14" (identifier "iVar5") (!= "!=") (number_literal "0x14")) () ")"))) () ")")) (compound_statement "{\n      pcVar16 = strerror(iVar5);\n      uVar1 = *puVar7;\n      uVar13 = gettext("%s: can not read directory: %s");\n      FUN_00185680(uVar13,uVar1,pcVar16);\n    }" ({ "{") (expression_statement "pcVar16 = strerror(iVar5);" (assignment_expression "pcVar16 = strerror(iVar5)" (identifier "pcVar16") (= "=") (call_expression "strerror(iVar5)" (identifier "strerror") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "uVar1 = *puVar7;" (assignment_expression "uVar1 = *puVar7" (identifier "uVar1") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "uVar13 = gettext("%s: can not read directory: %s");" (assignment_expression "uVar13 = gettext("%s: can not read directory: %s")" (identifier "uVar13") (= "=") (call_expression "gettext("%s: can not read directory: %s")" (identifier "gettext") (argument_list "("%s: can not read directory: %s")" (( "(") (string_literal ""%s: can not read directory: %s"" (" """) (string_content "%s: can not read directory: %s") (" """)) () ")")))) (; ";")) (expression_statement "FUN_00185680(uVar13,uVar1,pcVar16);" (call_expression "FUN_00185680(uVar13,uVar1,pcVar16)" (identifier "FUN_00185680") (argument_list "(uVar13,uVar1,pcVar16)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar1") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" (else "else") (compound_statement "{\nLAB_001844e2:\n    pdVar8 = readdir64(__dirp);\n    if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }\n    iVar5 = closedir(__dirp);\n    if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }\n  }" ({ "{") (labeled_statement "LAB_001844e2:\n    pdVar8 = readdir64(__dirp);" (statement_identifier "LAB_001844e2") (: ":") (expression_statement "pdVar8 = readdir64(__dirp);" (assignment_expression "pdVar8 = readdir64(__dirp)" (identifier "pdVar8") (= "=") (call_expression "readdir64(__dirp)" (identifier "readdir64") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";"))) (if_statement "if (pdVar8 != (dirent64 *)0x0) {\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(pdVar8 != (dirent64 *)0x0)" (( "(") (binary_expression "pdVar8 != (dirent64 *)0x0" (identifier "pdVar8") (!= "!=") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      } while( true );" (do "do") (compound_statement "{\n        pcVar16 = pdVar8->d_name;\n        local_58 = &local_48;\n        sVar9 = strlen(pcVar16);\n        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);\n        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);\n        local_90 = uVar17 % (ulong)puVar7[2];\n        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);\n        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }\n        if (local_58 == &local_48) goto LAB_001844e2;\n        FUN_002eff50();\n        pdVar8 = readdir64(__dirp);\n        if (pdVar8 == (dirent64 *)0x0) break;\n      }" ({ "{") (expression_statement "pcVar16 = pdVar8->d_name;" (assignment_expression "pcVar16 = pdVar8->d_name" (identifier "pcVar16") (= "=") (field_expression "pdVar8->d_name" (identifier "pdVar8") (-> "->") (field_identifier "d_name"))) (; ";")) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" (identifier "local_58") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "sVar9 = strlen(pcVar16);" (assignment_expression "sVar9 = strlen(pcVar16)" (identifier "sVar9") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);" (call_expression "FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9)" (identifier "FUN_001723b0") (argument_list "(&local_58,pcVar16,pcVar16 + sVar9)" (( "(") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "pcVar16") (, ",") (binary_expression "pcVar16 + sVar9" (identifier "pcVar16") (+ "+") (identifier "sVar9")) () ")"))) (; ";")) (expression_statement "uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);" (assignment_expression "uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907)" (identifier "uVar17") (= "=") (call_expression "FUN_002ee800(local_58,local_50,0xc70f6907)" (identifier "FUN_002ee800") (argument_list "(local_58,local_50,0xc70f6907)" (( "(") (identifier "local_58") (, ",") (identifier "local_50") (, ",") (number_literal "0xc70f6907") () ")")))) (; ";")) (expression_statement "local_90 = uVar17 % (ulong)puVar7[2];" (assignment_expression "local_90 = uVar17 % (ulong)puVar7[2]" (identifier "local_90") (= "=") (binary_expression "uVar17 % (ulong)puVar7[2]" (identifier "uVar17") (% "%") (cast_expression "(ulong)puVar7[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);" (assignment_expression "plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" (identifier "plVar10") (= "=") (cast_expression "(long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17)" (identifier "FUN_00185110") (argument_list "(puVar7 + 1,local_90,&local_58,uVar17)" (( "(") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1")) (, ",") (identifier "local_90") (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "uVar17") () ")"))))) (; ";")) (if_statement "if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }" (if "if") (parenthesized_expression "((plVar10 == (long *)0x0) || (*plVar10 == 0))" (( "(") (binary_expression "(plVar10 == (long *)0x0) || (*plVar10 == 0)" (parenthesized_expression "(plVar10 == (long *)0x0)" (( "(") (binary_expression "plVar10 == (long *)0x0" (identifier "plVar10") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*plVar10 == 0)" (( "(") (binary_expression "*plVar10 == 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n          plVar10 = (long *)FUN_002ee780(0x30);\n          *plVar10 = 0;\n          plVar10[1] = (long)(plVar10 + 3);\n          if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }\n          uVar1 = puVar7[4];\n          uVar13 = puVar7[2];\n          local_48 = 0;\n          plVar10[2] = local_50;\n          local_50 = 0;\n          local_58 = &local_48;\n          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);\n          if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }\n          plVar10[5] = uVar17;\n          plVar11 = puVar12 + local_90;\n          if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }\n          puVar7[4] = puVar7[4] + 1;\n        }" ({ "{") (expression_statement "plVar10 = (long *)FUN_002ee780(0x30);" (assignment_expression "plVar10 = (long *)FUN_002ee780(0x30)" (identifier "plVar10") (= "=") (cast_expression "(long *)FUN_002ee780(0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002ee780(0x30)" (identifier "FUN_002ee780") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))))) (; ";")) (expression_statement "*plVar10 = 0;" (assignment_expression "*plVar10 = 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar10[1] = (long)(plVar10 + 3);" (assignment_expression "plVar10[1] = (long)(plVar10 + 3)" (subscript_expression "plVar10[1]" (identifier "plVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)(plVar10 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(plVar10 + 3)" (( "(") (binary_expression "plVar10 + 3" (identifier "plVar10") (+ "+") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (local_58 == &local_48) {\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }\n          else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" (if "if") (parenthesized_expression "(local_58 == &local_48)" (( "(") (binary_expression "local_58 == &local_48" (identifier "local_58") (== "==") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (compound_statement "{\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n            plVar10[4] = lStack_40;\n          }" ({ "{") (expression_statement "plVar10[3] = CONCAT71(uStack_47,local_48);" (assignment_expression "plVar10[3] = CONCAT71(uStack_47,local_48)" (subscript_expression "plVar10[3]" (identifier "plVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "CONCAT71(uStack_47,local_48)" (identifier "CONCAT71") (argument_list "(uStack_47,local_48)" (( "(") (identifier "uStack_47") (, ",") (identifier "local_48") () ")")))) (; ";")) (expression_statement "plVar10[4] = lStack_40;" (assignment_expression "plVar10[4] = lStack_40" (subscript_expression "plVar10[4]" (identifier "plVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "lStack_40")) (; ";")) (} "}")) (else_clause "else {\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" (else "else") (compound_statement "{\n            plVar10[1] = (long)local_58;\n            plVar10[3] = CONCAT71(uStack_47,local_48);\n          }" ({ "{") (expression_statement "plVar10[1] = (long)local_58;" (assignment_expression "plVar10[1] = (long)local_58" (subscript_expression "plVar10[1]" (identifier "plVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)local_58" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_58"))) (; ";")) (expression_statement "plVar10[3] = CONCAT71(uStack_47,local_48);" (assignment_expression "plVar10[3] = CONCAT71(uStack_47,local_48)" (subscript_expression "plVar10[3]" (identifier "plVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (call_expression "CONCAT71(uStack_47,local_48)" (identifier "CONCAT71") (argument_list "(uStack_47,local_48)" (( "(") (identifier "uStack_47") (, ",") (identifier "local_48") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar1 = puVar7[4];" (assignment_expression "uVar1 = puVar7[4]" (identifier "uVar1") (= "=") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar7[2];" (assignment_expression "uVar13 = puVar7[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar10[2] = local_50;" (assignment_expression "plVar10[2] = local_50" (subscript_expression "plVar10[2]" (identifier "plVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = &local_48;" (assignment_expression "local_58 = &local_48" (identifier "local_58") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);" (assignment_expression "cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1)" (identifier "cVar4") (= "=") (call_expression "FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1)" (identifier "FUN_0032e4e0") (argument_list "(puVar7 + 5,uVar13,uVar1,1)" (( "(") (binary_expression "puVar7 + 5" (identifier "puVar7") (+ "+") (number_literal "5")) (, ",") (identifier "uVar13") (, ",") (identifier "uVar1") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n            puVar12 = (undefined8 *)puVar7[1];\n          }\n          else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            puVar12 = (undefined8 *)puVar7[1];\n          }" ({ "{") (expression_statement "puVar12 = (undefined8 *)puVar7[1];" (assignment_expression "puVar12 = (undefined8 *)puVar7[1]" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)puVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" (else "else") (compound_statement "{\n            if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }\n            plVar11 = (long *)puVar7[3];\n            puVar7[3] = 0;\n            if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }\nLAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }\n            puVar7[2] = extraout_RDX;\n            puVar7[1] = puVar12;\n            local_90 = uVar17 % extraout_RDX;\n          }" ({ "{") (if_statement "if (extraout_RDX == 1) {\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }\n            else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }" (if "if") (parenthesized_expression "(extraout_RDX == 1)" (( "(") (binary_expression "extraout_RDX == 1" (identifier "extraout_RDX") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              puVar7[7] = 0;\n              puVar12 = puVar14;\n            }" ({ "{") (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12 = puVar14;" (assignment_expression "puVar12 = puVar14" (identifier "puVar12") (= "=") (identifier "puVar14")) (; ";")) (} "}")) (else_clause "else {\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }" (else "else") (compound_statement "{\n                    \n              puVar12 = (undefined8 *)FUN_00184130();\n            }" ({ "{") (expression_statement "puVar12 = (undefined8 *)FUN_00184130();" (assignment_expression "puVar12 = (undefined8 *)FUN_00184130()" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)FUN_00184130()" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00184130()" (identifier "FUN_00184130") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (expression_statement "plVar11 = (long *)puVar7[3];" (assignment_expression "plVar11 = (long *)puVar7[3]" (identifier "plVar11") (= "=") (cast_expression "(long *)puVar7[3]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar7[3] = 0;" (assignment_expression "puVar7[3] = 0" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (plVar11 != (long *)0x0) {\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }" (if "if") (parenthesized_expression "(plVar11 != (long *)0x0)" (( "(") (binary_expression "plVar11 != (long *)0x0" (identifier "plVar11") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar18 = 0;\n              do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);\n            }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              } while (plVar21 != (long *)0x0);" (do "do") (compound_statement "{\n                while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }\n                *plVar11 = puVar7[3];\n                puVar7[3] = plVar11;\n                *plVar20 = (long)(puVar7 + 3);\n                if (*plVar11 == 0) goto LAB_0018471c;\n                puVar12[uVar18] = plVar11;\n                plVar11 = plVar21;\n                uVar18 = uVar19;\n              }" ({ "{") (while_statement "while( true ) {\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  plVar21 = (long *)*plVar11;\n                  uVar19 = (ulong)plVar11[5] % extraout_RDX;\n                  plVar20 = puVar12 + uVar19;\n                  if ((long *)*plVar20 == (long *)0x0) break;\n                  *plVar11 = *(long *)*plVar20;\n                  *(long **)*plVar20 = plVar11;\n                  uVar19 = uVar18;\nLAB_0018471c:\n                  plVar11 = plVar21;\n                  uVar18 = uVar19;\n                  if (plVar21 == (long *)0x0) goto LAB_00184768;\n                }" ({ "{") (expression_statement "plVar21 = (long *)*plVar11;" (assignment_expression "plVar21 = (long *)*plVar11" (identifier "plVar21") (= "=") (cast_expression "(long *)*plVar11" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar11" (* "*") (identifier "plVar11")))) (; ";")) (expression_statement "uVar19 = (ulong)plVar11[5] % extraout_RDX;" (assignment_expression "uVar19 = (ulong)plVar11[5] % extraout_RDX" (identifier "uVar19") (= "=") (binary_expression "(ulong)plVar11[5] % extraout_RDX" (cast_expression "(ulong)plVar11[5]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "plVar11[5]" (identifier "plVar11") ([ "[") (number_literal "5") (] "]"))) (% "%") (identifier "extraout_RDX"))) (; ";")) (expression_statement "plVar20 = puVar12 + uVar19;" (assignment_expression "plVar20 = puVar12 + uVar19" (identifier "plVar20") (= "=") (binary_expression "puVar12 + uVar19" (identifier "puVar12") (+ "+") (identifier "uVar19"))) (; ";")) (if_statement "if ((long *)*plVar20 == (long *)0x0) break;" (if "if") (parenthesized_expression "((long *)*plVar20 == (long *)0x0)" (( "(") (binary_expression "(long *)*plVar20 == (long *)0x0" (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*plVar11 = *(long *)*plVar20;" (assignment_expression "*plVar11 = *(long *)*plVar20" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (pointer_expression "*(long *)*plVar20" (* "*") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20"))))) (; ";")) (expression_statement "*(long **)*plVar20 = plVar11;" (assignment_expression "*(long **)*plVar20 = plVar11" (pointer_expression "*(long **)*plVar20" (* "*") (cast_expression "(long **)*plVar20" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20")))) (= "=") (identifier "plVar11")) (; ";")) (expression_statement "uVar19 = uVar18;" (assignment_expression "uVar19 = uVar18" (identifier "uVar19") (= "=") (identifier "uVar18")) (; ";")) (labeled_statement "LAB_0018471c:\n                  plVar11 = plVar21;" (statement_identifier "LAB_0018471c") (: ":") (expression_statement "plVar11 = plVar21;" (assignment_expression "plVar11 = plVar21" (identifier "plVar11") (= "=") (identifier "plVar21")) (; ";"))) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" (identifier "uVar18") (= "=") (identifier "uVar19")) (; ";")) (if_statement "if (plVar21 == (long *)0x0) goto LAB_00184768;" (if "if") (parenthesized_expression "(plVar21 == (long *)0x0)" (( "(") (binary_expression "plVar21 == (long *)0x0" (identifier "plVar21") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00184768;" (goto "goto") (statement_identifier "LAB_00184768") (; ";"))) (} "}"))) (expression_statement "*plVar11 = puVar7[3];" (assignment_expression "*plVar11 = puVar7[3]" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar7[3] = plVar11;" (assignment_expression "puVar7[3] = plVar11" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "plVar11")) (; ";")) (expression_statement "*plVar20 = (long)(puVar7 + 3);" (assignment_expression "*plVar20 = (long)(puVar7 + 3)" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (= "=") (cast_expression "(long)(puVar7 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(puVar7 + 3)" (( "(") (binary_expression "puVar7 + 3" (identifier "puVar7") (+ "+") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (*plVar11 == 0) goto LAB_0018471c;" (if "if") (parenthesized_expression "(*plVar11 == 0)" (( "(") (binary_expression "*plVar11 == 0" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0018471c;" (goto "goto") (statement_identifier "LAB_0018471c") (; ";"))) (expression_statement "puVar12[uVar18] = plVar11;" (assignment_expression "puVar12[uVar18] = plVar11" (subscript_expression "puVar12[uVar18]" (identifier "puVar12") ([ "[") (identifier "uVar18") (] "]")) (= "=") (identifier "plVar11")) (; ";")) (expression_statement "plVar11 = plVar21;" (assignment_expression "plVar11 = plVar21" (identifier "plVar11") (= "=") (identifier "plVar21")) (; ";")) (expression_statement "uVar18 = uVar19;" (assignment_expression "uVar18 = uVar19" (identifier "uVar18") (= "=") (identifier "uVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar21 != (long *)0x0)" (( "(") (binary_expression "plVar21 != (long *)0x0" (identifier "plVar21") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00184768:\n            if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }" (statement_identifier "LAB_00184768") (: ":") (if_statement "if (puVar14 != (undefined8 *)puVar7[1]) {\n              FUN_002eff50();\n            }" (if "if") (parenthesized_expression "(puVar14 != (undefined8 *)puVar7[1])" (( "(") (binary_expression "puVar14 != (undefined8 *)puVar7[1]" (identifier "puVar14") (!= "!=") (cast_expression "(undefined8 *)puVar7[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n              FUN_002eff50();\n            }" ({ "{") (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" (identifier "FUN_002eff50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar7[2] = extraout_RDX;" (assignment_expression "puVar7[2] = extraout_RDX" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "extraout_RDX")) (; ";")) (expression_statement "puVar7[1] = puVar12;" (assignment_expression "puVar7[1] = puVar12" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar12")) (; ";")) (expression_statement "local_90 = uVar17 % extraout_RDX;" (assignment_expression "local_90 = uVar17 % extraout_RDX" (identifier "local_90") (= "=") (binary_expression "uVar17 % extraout_RDX" (identifier "uVar17") (% "%") (identifier "extraout_RDX"))) (; ";")) (} "}")))) (expression_statement "plVar10[5] = uVar17;" (assignment_expression "plVar10[5] = uVar17" (subscript_expression "plVar10[5]" (identifier "plVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "plVar11 = puVar12 + local_90;" (assignment_expression "plVar11 = puVar12 + local_90" (identifier "plVar11") (= "=") (binary_expression "puVar12 + local_90" (identifier "puVar12") (+ "+") (identifier "local_90"))) (; ";")) (if_statement "if ((long *)*plVar11 == (long *)0x0) {\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }\n          else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" (if "if") (parenthesized_expression "((long *)*plVar11 == (long *)0x0)" (( "(") (binary_expression "(long *)*plVar11 == (long *)0x0" (cast_expression "(long *)*plVar11" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar11" (* "*") (identifier "plVar11"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            lVar2 = puVar7[3];\n            puVar7[3] = plVar10;\n            *plVar10 = lVar2;\n            if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }\n            *plVar11 = (long)(puVar7 + 3);\n          }" ({ "{") (expression_statement "lVar2 = puVar7[3];" (assignment_expression "lVar2 = puVar7[3]" (identifier "lVar2") (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar7[3] = plVar10;" (assignment_expression "puVar7[3] = plVar10" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "plVar10")) (; ";")) (expression_statement "*plVar10 = lVar2;" (assignment_expression "*plVar10 = lVar2" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar2")) (; ";")) (if_statement "if (lVar2 != 0) {\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }" (if "if") (parenthesized_expression "(lVar2 != 0)" (( "(") (binary_expression "lVar2 != 0" (identifier "lVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;\n            }" ({ "{") (expression_statement "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;" (assignment_expression "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10" (subscript_expression "puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]]" (identifier "puVar12") ([ "[") (binary_expression "*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]" (pointer_expression "*(ulong *)(lVar2 + 0x28)" (* "*") (cast_expression "(ulong *)(lVar2 + 0x28)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar2 + 0x28)" (( "(") (binary_expression "lVar2 + 0x28" (identifier "lVar2") (+ "+") (number_literal "0x28")) () ")")))) (% "%") (cast_expression "(ulong)puVar7[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")))) (] "]")) (= "=") (identifier "plVar10")) (; ";")) (} "}"))) (expression_statement "*plVar11 = (long)(puVar7 + 3);" (assignment_expression "*plVar11 = (long)(puVar7 + 3)" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (cast_expression "(long)(puVar7 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(puVar7 + 3)" (( "(") (binary_expression "puVar7 + 3" (identifier "puVar7") (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" (else "else") (compound_statement "{\n            *plVar10 = *(long *)*plVar11;\n            *(long **)*plVar11 = plVar10;\n          }" ({ "{") (expression_statement "*plVar10 = *(long *)*plVar11;" (assignment_expression "*plVar10 = *(long *)*plVar11" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (pointer_expression "*(long *)*plVar11" (* "*") (cast_expression "(long *)*plVar11" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar11" (* "*") (identifier "plVar11"))))) (; ";")) (expression_statement "*(long **)*plVar11 = plVar10;" (assignment_expression "*(long **)*plVar11 = plVar10" (pointer_expression "*(long **)*plVar11" (* "*") (cast_expression "(long **)*plVar11" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar11" (* "*") (identifier "plVar11")))) (= "=") (identifier "plVar10")) (; ";")) (} "}")))) (expression_statement "puVar7[4] = puVar7[4] + 1;" (assignment_expression "puVar7[4] = puVar7[4] + 1" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar7[4] + 1" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (local_58 == &local_48) goto LAB_001844e2;" (if "if") (parenthesized_expression "(local_58 == &local_48)" (( "(") (binary_expression "local_58 == &local_48" (identifier "local_58") (== "==") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) () ")")) (goto_statement "goto LAB_001844e2;" (goto "goto") (statement_identifier "LAB_001844e2") (; ";"))) (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" (identifier "FUN_002eff50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pdVar8 = readdir64(__dirp);" (assignment_expression "pdVar8 = readdir64(__dirp)" (identifier "pdVar8") (= "=") (call_expression "readdir64(__dirp)" (identifier "readdir64") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (pdVar8 == (dirent64 *)0x0) break;" (if "if") (parenthesized_expression "(pdVar8 == (dirent64 *)0x0)" (( "(") (binary_expression "pdVar8 == (dirent64 *)0x0" (identifier "pdVar8") (== "==") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar5 = closedir(__dirp);" (assignment_expression "iVar5 = closedir(__dirp)" (identifier "iVar5") (= "=") (call_expression "closedir(__dirp)" (identifier "closedir") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar15 = __errno_location();\n      pcVar16 = strerror(*piVar15);\n      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);\n    }" ({ "{") (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" (identifier "piVar15") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar16 = strerror(*piVar15);" (assignment_expression "pcVar16 = strerror(*piVar15)" (identifier "pcVar16") (= "=") (call_expression "strerror(*piVar15)" (identifier "strerror") (argument_list "(*piVar15)" (( "(") (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) () ")")))) (; ";")) (expression_statement "FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);" (call_expression "FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16)" (identifier "FUN_00185730") (argument_list "("%s: closedir failed: %s",*puVar7,pcVar16)" (( "(") (string_literal ""%s: closedir failed: %s"" (" """) (string_content "%s: closedir failed: %s") (" """)) (, ",") (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "(**(code **)(*(long *)*puVar3 + 0x10))();" (call_expression "(**(code **)(*(long *)*puVar3 + 0x10))()" (parenthesized_expression "(**(code **)(*(long *)*puVar3 + 0x10))" (( "(") (pointer_expression "**(code **)(*(long *)*puVar3 + 0x10)" (* "*") (pointer_expression "*(code **)(*(long *)*puVar3 + 0x10)" (* "*") (cast_expression "(code **)(*(long *)*puVar3 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*puVar3 + 0x10)" (( "(") (binary_expression "*(long *)*puVar3 + 0x10" (pointer_expression "*(long *)*puVar3" (* "*") (cast_expression "(long *)*puVar3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "plVar11 = (long *)FUN_002ee780(0x18);" (assignment_expression "plVar11 = (long *)FUN_002ee780(0x18)" (identifier "plVar11") (= "=") (cast_expression "(long *)FUN_002ee780(0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002ee780(0x18)" (identifier "FUN_002ee780") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")"))))) (; ";")) (expression_statement "uVar17 = puVar3[2];" (assignment_expression "uVar17 = puVar3[2]" (identifier "uVar17") (= "=") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "plVar11[2] = (long)puVar7;" (assignment_expression "plVar11[2] = (long)puVar7" (subscript_expression "plVar11[2]" (identifier "plVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7"))) (; ";")) (expression_statement "*plVar11 = 0;" (assignment_expression "*plVar11 = 0" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar11[1] = (long)__name;" (assignment_expression "plVar11[1] = (long)__name" (subscript_expression "plVar11[1]" (identifier "plVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(long)__name" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__name"))) (; ";")) (expression_statement "uVar18 = (ulong)__name % uVar17;" (assignment_expression "uVar18 = (ulong)__name % uVar17" (identifier "uVar18") (= "=") (binary_expression "(ulong)__name % uVar17" (cast_expression "(ulong)__name" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "__name")) (% "%") (identifier "uVar17"))) (; ";")) (expression_statement "plVar10 = *(long **)(puVar3[1] + uVar18 * 8);" (assignment_expression "plVar10 = *(long **)(puVar3[1] + uVar18 * 8)" (identifier "plVar10") (= "=") (pointer_expression "*(long **)(puVar3[1] + uVar18 * 8)" (* "*") (cast_expression "(long **)(puVar3[1] + uVar18 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3[1] + uVar18 * 8)" (( "(") (binary_expression "puVar3[1] + uVar18 * 8" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "uVar18 * 8" (identifier "uVar18") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (plVar10 != (long *)0x0) {\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }" (if "if") (parenthesized_expression "(plVar10 != (long *)0x0)" (( "(") (binary_expression "plVar10 != (long *)0x0" (identifier "plVar10") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar16 = (char *)((long *)*plVar10)[1];\n    plVar20 = (long *)*plVar10;\n    while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }\n    if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }\n  }" ({ "{") (expression_statement "pcVar16 = (char *)((long *)*plVar10)[1];" (assignment_expression "pcVar16 = (char *)((long *)*plVar10)[1]" (identifier "pcVar16") (= "=") (cast_expression "(char *)((long *)*plVar10)[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((long *)*plVar10)[1]" (parenthesized_expression "((long *)*plVar10)" (( "(") (cast_expression "(long *)*plVar10" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar10" (* "*") (identifier "plVar10"))) () ")")) ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "plVar20 = (long *)*plVar10;" (assignment_expression "plVar20 = (long *)*plVar10" (identifier "plVar20") (= "=") (cast_expression "(long *)*plVar10" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")))) (; ";")) (while_statement "while (plVar21 = plVar20, __name != pcVar16) {\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }" (while "while") (parenthesized_expression "(plVar21 = plVar20, __name != pcVar16)" (( "(") (comma_expression "plVar21 = plVar20, __name != pcVar16" (assignment_expression "plVar21 = plVar20" (identifier "plVar21") (= "=") (identifier "plVar20")) (, ",") (binary_expression "__name != pcVar16" (identifier "__name") (!= "!=") (identifier "pcVar16"))) () ")")) (compound_statement "{\n      plVar20 = (long *)*plVar21;\n      if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;\n    }" ({ "{") (expression_statement "plVar20 = (long *)*plVar21;" (assignment_expression "plVar20 = (long *)*plVar21" (identifier "plVar20") (= "=") (cast_expression "(long *)*plVar21" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar21" (* "*") (identifier "plVar21")))) (; ";")) (if_statement "if ((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))\n      goto LAB_00184868;" (if "if") (parenthesized_expression "((plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))" (( "(") (binary_expression "(plVar20 == (long *)0x0) ||\n         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17)" (parenthesized_expression "(plVar20 == (long *)0x0)" (( "(") (binary_expression "plVar20 == (long *)0x0" (identifier "plVar20") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17)" (( "(") (comma_expression "pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17" (assignment_expression "pcVar16 = (char *)plVar20[1]" (identifier "pcVar16") (= "=") (cast_expression "(char *)plVar20[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar20[1]" (identifier "plVar20") ([ "[") (number_literal "1") (] "]")))) (, ",") (comma_expression "plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17" (assignment_expression "plVar10 = plVar21" (identifier "plVar10") (= "=") (identifier "plVar21")) (, ",") (binary_expression "uVar18 != (ulong)pcVar16 % uVar17" (identifier "uVar18") (!= "!=") (binary_expression "(ulong)pcVar16 % uVar17" (cast_expression "(ulong)pcVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar16")) (% "%") (identifier "uVar17"))))) () ")"))) () ")")) (goto_statement "goto LAB_00184868;" (goto "goto") (statement_identifier "LAB_00184868") (; ";"))) (} "}"))) (if_statement "if (*plVar10 != 0) {\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }" (if "if") (parenthesized_expression "(*plVar10 != 0)" (( "(") (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_002eff50(plVar11);\n                    \n      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);\n    }" ({ "{") (expression_statement "FUN_002eff50(plVar11);" (call_expression "FUN_002eff50(plVar11)" (identifier "FUN_002eff50") (argument_list "(plVar11)" (( "(") (identifier "plVar11") () ")"))) (; ";")) (expression_statement "FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);" (call_expression "FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f)" (identifier "FUN_0018dcf0") (argument_list "("../../gold/dirsearch.cc",0x97,&DAT_0038903f)" (( "(") (string_literal ""../../gold/dirsearch.cc"" (" """) (string_content "../../gold/dirsearch.cc") (" """)) (, ",") (number_literal "0x97") (, ",") (pointer_expression "&DAT_0038903f" (& "&") (identifier "DAT_0038903f")) () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00184868:\n                    \n  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);" (statement_identifier "LAB_00184868") (: ":") (expression_statement "cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);" (assignment_expression "cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1)" (identifier "cVar4") (= "=") (call_expression "FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1)" (identifier "FUN_0032e4e0") (argument_list "(puVar3 + 5,uVar17,puVar3[4],1)" (( "(") (binary_expression "puVar3 + 5" (identifier "puVar3") (+ "+") (number_literal "5")) (, ",") (identifier "uVar17") (, ",") (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "1") () ")")))) (; ";"))) (if_statement "if (cVar4 == '\0') {\n    puVar14 = (undefined8 *)puVar3[1];\n  }\n  else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar14 = (undefined8 *)puVar3[1];\n  }" ({ "{") (expression_statement "puVar14 = (undefined8 *)puVar3[1];" (assignment_expression "puVar14 = (undefined8 *)puVar3[1]" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)puVar3[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" (else "else") (compound_statement "{\n    if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }\n    plVar10 = (long *)puVar3[3];\n    puVar3[3] = 0;\n    if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }\n    if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }\n    puVar3[2] = extraout_RDX_00;\n    uVar18 = (ulong)__name % extraout_RDX_00;\n    puVar3[1] = puVar14;\n  }" ({ "{") (if_statement "if (extraout_RDX_00 == 1) {\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }\n    else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" (if "if") (parenthesized_expression "(extraout_RDX_00 == 1)" (( "(") (binary_expression "extraout_RDX_00 == 1" (identifier "extraout_RDX_00") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      puVar3[7] = 0;\n      puVar14 = puVar3 + 7;\n    }" ({ "{") (expression_statement "puVar3[7] = 0;" (assignment_expression "puVar3[7] = 0" (subscript_expression "puVar3[7]" (identifier "puVar3") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = puVar3 + 7;" (assignment_expression "puVar14 = puVar3 + 7" (identifier "puVar14") (= "=") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7"))) (; ";")) (} "}")) (else_clause "else {\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" (else "else") (compound_statement "{\n                    \n      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);\n    }" ({ "{") (expression_statement "puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);" (assignment_expression "puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)FUN_00184130(extraout_RDX_00)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00184130(extraout_RDX_00)" (identifier "FUN_00184130") (argument_list "(extraout_RDX_00)" (( "(") (identifier "extraout_RDX_00") () ")"))))) (; ";")) (} "}")))) (expression_statement "plVar10 = (long *)puVar3[3];" (assignment_expression "plVar10 = (long *)puVar3[3]" (identifier "plVar10") (= "=") (cast_expression "(long *)puVar3[3]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar3[3] = 0;" (assignment_expression "puVar3[3] = 0" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (plVar10 != (long *)0x0) {\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }" (if "if") (parenthesized_expression "(plVar10 != (long *)0x0)" (( "(") (binary_expression "plVar10 != (long *)0x0" (identifier "plVar10") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar17 = 0;\n      do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      } while (plVar21 != (long *)0x0);" (do "do") (compound_statement "{\n        plVar21 = (long *)*plVar10;\n        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;\n        plVar20 = puVar14 + uVar18;\n        if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }\n        plVar10 = plVar21;\n        uVar17 = uVar18;\n      }" ({ "{") (expression_statement "plVar21 = (long *)*plVar10;" (assignment_expression "plVar21 = (long *)*plVar10" (identifier "plVar21") (= "=") (cast_expression "(long *)*plVar10" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar10" (* "*") (identifier "plVar10")))) (; ";")) (expression_statement "uVar18 = (ulong)plVar10[1] % extraout_RDX_00;" (assignment_expression "uVar18 = (ulong)plVar10[1] % extraout_RDX_00" (identifier "uVar18") (= "=") (binary_expression "(ulong)plVar10[1] % extraout_RDX_00" (cast_expression "(ulong)plVar10[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "plVar10[1]" (identifier "plVar10") ([ "[") (number_literal "1") (] "]"))) (% "%") (identifier "extraout_RDX_00"))) (; ";")) (expression_statement "plVar20 = puVar14 + uVar18;" (assignment_expression "plVar20 = puVar14 + uVar18" (identifier "plVar20") (= "=") (binary_expression "puVar14 + uVar18" (identifier "puVar14") (+ "+") (identifier "uVar18"))) (; ";")) (if_statement "if ((long *)*plVar20 == (long *)0x0) {\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }\n        else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" (if "if") (parenthesized_expression "((long *)*plVar20 == (long *)0x0)" (( "(") (binary_expression "(long *)*plVar20 == (long *)0x0" (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *plVar10 = puVar3[3];\n          puVar3[3] = plVar10;\n          *plVar20 = (long)(puVar3 + 3);\n          if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }\n        }" ({ "{") (expression_statement "*plVar10 = puVar3[3];" (assignment_expression "*plVar10 = puVar3[3]" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar3[3] = plVar10;" (assignment_expression "puVar3[3] = plVar10" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "plVar10")) (; ";")) (expression_statement "*plVar20 = (long)(puVar3 + 3);" (assignment_expression "*plVar20 = (long)(puVar3 + 3)" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (= "=") (cast_expression "(long)(puVar3 + 3)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(puVar3 + 3)" (( "(") (binary_expression "puVar3 + 3" (identifier "puVar3") (+ "+") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (*plVar10 != 0) {\n            puVar14[uVar17] = plVar10;\n          }" (if "if") (parenthesized_expression "(*plVar10 != 0)" (( "(") (binary_expression "*plVar10 != 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar14[uVar17] = plVar10;\n          }" ({ "{") (expression_statement "puVar14[uVar17] = plVar10;" (assignment_expression "puVar14[uVar17] = plVar10" (subscript_expression "puVar14[uVar17]" (identifier "puVar14") ([ "[") (identifier "uVar17") (] "]")) (= "=") (identifier "plVar10")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" (else "else") (compound_statement "{\n          *plVar10 = *(long *)*plVar20;\n          *(long **)*plVar20 = plVar10;\n          uVar18 = uVar17;\n        }" ({ "{") (expression_statement "*plVar10 = *(long *)*plVar20;" (assignment_expression "*plVar10 = *(long *)*plVar20" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (pointer_expression "*(long *)*plVar20" (* "*") (cast_expression "(long *)*plVar20" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20"))))) (; ";")) (expression_statement "*(long **)*plVar20 = plVar10;" (assignment_expression "*(long **)*plVar20 = plVar10" (pointer_expression "*(long **)*plVar20" (* "*") (cast_expression "(long **)*plVar20" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*plVar20" (* "*") (identifier "plVar20")))) (= "=") (identifier "plVar10")) (; ";")) (expression_statement "uVar18 = uVar17;" (assignment_expression "uVar18 = uVar17" (identifier "uVar18") (= "=") (identifier "uVar17")) (; ";")) (} "}")))) (expression_statement "plVar10 = plVar21;" (assignment_expression "plVar10 = plVar21" (identifier "plVar10") (= "=") (identifier "plVar21")) (; ";")) (expression_statement "uVar17 = uVar18;" (assignment_expression "uVar17 = uVar18" (identifier "uVar17") (= "=") (identifier "uVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar21 != (long *)0x0)" (( "(") (binary_expression "plVar21 != (long *)0x0" (identifier "plVar21") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((undefined8 *)puVar3[1] != puVar3 + 7) {\n      FUN_002eff50();\n    }" (if "if") (parenthesized_expression "((undefined8 *)puVar3[1] != puVar3 + 7)" (( "(") (binary_expression "(undefined8 *)puVar3[1] != puVar3 + 7" (cast_expression "(undefined8 *)puVar3[1]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (binary_expression "puVar3 + 7" (identifier "puVar3") (+ "+") (number_literal "7"))) () ")")) (compound_statement "{\n      FUN_002eff50();\n    }" ({ "{") (expression_statement "FUN_002eff50();" (call_expression "FUN_002eff50()" (identifier "FUN_002eff50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3[2] = extraout_RDX_00;" (assignment_expression "puVar3[2] = extraout_RDX_00" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "extraout_RDX_00")) (; ";")) (expression_statement "uVar18 = (ulong)__name % extraout_RDX_00;" (assignment_expression "uVar18 = (ulong)__name % extraout_RDX_00" (identifier "uVar18") (= "=") (binary_expression "(ulong)__name % extraout_RDX_00" (cast_expression "(ulong)__name" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "__name")) (% "%") (identifier "extraout_RDX_00"))) (; ";")) (expression_statement "puVar3[1] = puVar14;" (assignment_expression "puVar3[1] = puVar14" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (} "}")))) (if_statement "if ((long *)puVar14[uVar18] == (long *)0x0) {\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }\n  else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" (if "if") (parenthesized_expression "((long *)puVar14[uVar18] == (long *)0x0)" (( "(") (binary_expression "(long *)puVar14[uVar18] == (long *)0x0" (cast_expression "(long *)puVar14[uVar18]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[uVar18]" (identifier "puVar14") ([ "[") (identifier "uVar18") (] "]"))) (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *plVar11 = puVar3[3];\n    lVar2 = puVar3[1];\n    puVar3[3] = plVar11;\n    if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }\n    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;\n  }" ({ "{") (expression_statement "*plVar11 = puVar3[3];" (assignment_expression "*plVar11 = puVar3[3]" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "lVar2 = puVar3[1];" (assignment_expression "lVar2 = puVar3[1]" (identifier "lVar2") (= "=") (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar3[3] = plVar11;" (assignment_expression "puVar3[3] = plVar11" (subscript_expression "puVar3[3]" (identifier "puVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "plVar11")) (; ";")) (if_statement "if (*plVar11 != 0) {\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }" (if "if") (parenthesized_expression "(*plVar11 != 0)" (( "(") (binary_expression "*plVar11 != 0" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;\n    }" ({ "{") (expression_statement "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;" (assignment_expression "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11" (pointer_expression "*(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" (* "*") (cast_expression "(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8)" (( "(") (binary_expression "lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8" (identifier "lVar2") (+ "+") (binary_expression "(*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8" (parenthesized_expression "(*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2])" (( "(") (binary_expression "*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]" (pointer_expression "*(ulong *)(*plVar11 + 8)" (* "*") (cast_expression "(ulong *)(*plVar11 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*plVar11 + 8)" (( "(") (binary_expression "*plVar11 + 8" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (+ "+") (number_literal "8")) () ")")))) (% "%") (cast_expression "(ulong)puVar3[2]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")))) () ")")) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "plVar11")) (; ";")) (} "}"))) (expression_statement "*(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;" (assignment_expression "*(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3" (pointer_expression "*(undefined8 **)(lVar2 + uVar18 * 8)" (* "*") (cast_expression "(undefined8 **)(lVar2 + uVar18 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar2 + uVar18 * 8)" (( "(") (binary_expression "lVar2 + uVar18 * 8" (identifier "lVar2") (+ "+") (binary_expression "uVar18 * 8" (identifier "uVar18") (* "*") (number_literal "8"))) () ")")))) (= "=") (binary_expression "puVar3 + 3" (identifier "puVar3") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" (else "else") (compound_statement "{\n    *plVar11 = *(long *)puVar14[uVar18];\n    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;\n  }" ({ "{") (expression_statement "*plVar11 = *(long *)puVar14[uVar18];" (assignment_expression "*plVar11 = *(long *)puVar14[uVar18]" (pointer_expression "*plVar11" (* "*") (identifier "plVar11")) (= "=") (pointer_expression "*(long *)puVar14[uVar18]" (* "*") (cast_expression "(long *)puVar14[uVar18]" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar14[uVar18]" (identifier "puVar14") ([ "[") (identifier "uVar18") (] "]"))))) (; ";")) (expression_statement "**(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;" (assignment_expression "**(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11" (pointer_expression "**(undefined8 **)(puVar3[1] + uVar18 * 8)" (* "*") (pointer_expression "*(undefined8 **)(puVar3[1] + uVar18 * 8)" (* "*") (cast_expression "(undefined8 **)(puVar3[1] + uVar18 * 8)" (( "(") (type_descriptor "undefined8 **" (type_identifier "undefined8") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3[1] + uVar18 * 8)" (( "(") (binary_expression "puVar3[1] + uVar18 * 8" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "uVar18 * 8" (identifier "uVar18") (* "*") (number_literal "8"))) () ")"))))) (= "=") (identifier "plVar11")) (; ";")) (} "}")))) (expression_statement "puVar3[4] = puVar3[4] + 1;" (assignment_expression "puVar3[4] = puVar3[4] + 1" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar3[4] + 1" (subscript_expression "puVar3[4]" (identifier "puVar3") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(*(long *)*puVar3 + 0x18))();" (call_expression "(**(code **)(*(long *)*puVar3 + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)*puVar3 + 0x18))" (( "(") (pointer_expression "**(code **)(*(long *)*puVar3 + 0x18)" (* "*") (pointer_expression "*(code **)(*(long *)*puVar3 + 0x18)" (* "*") (cast_expression "(code **)(*(long *)*puVar3 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)*puVar3 + 0x18)" (( "(") (binary_expression "*(long *)*puVar3 + 0x18" (pointer_expression "*(long *)*puVar3" (* "*") (cast_expression "(long *)*puVar3" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* DWARF original prototype: void run(Dir_cache_task * this, Workqueue * param_1) */

void __thiscall
anon_unknown.dwarf_4b7067::type_1::function_1(type_1 *this,type_2 *param_1)

{
  type_3 *p_Var1;
  anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
  *var_5;
  type_4 *psVar3;
  type_3 *var_10;
  type_3 *var_41;
  type_5 *pLVar5;
  type_6 *var_50;
  type_7 *pDVar7;
  char var_36;
  int var_18;
  type_8 *p_Var10;
  type_3 *var_12;
  type_9 *var_16;
  type_10 *var_23;
  size_t var_28;
  type_3 *var_46;
  type_11 *var_32;
  type_3 *var_11;
  type_3 *var_33;
  type_3 *var_40;
  char *format;
  type_6 *var_49;
  int *piVar20;
  char *var_27;
  type_3 *var_39;
  type_12 var_13;
  _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_6>var_3>var_3>
  *var_37;
  _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_6>var_3>var_3>
  *var_48;
  type_12 var_8;
  type_6 p_Var25;
  type_6 var_9;
  type_12 var_43;
  basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3> var_7;
  
  pDVar7 = caches;
  var_10 = (type_3 *)this->dir_;
  (*((caches->lock_).lock_)->_vptr_Lock_impl[2])();
  var_8 = (pDVar7->caches_)._M_h._M_bucket_count;
  var_13 = (type_12)var_10 % var_8;
  var_9 = (pDVar7->caches_)._M_h._M_buckets[var_13];
  if (var_9 != (type_6)0x0) {
    var_11 = var_9->_M_nxt[1]._M_nxt;
    var_12 = var_9->_M_nxt;
    do {
      p_Var25 = var_12;
      if (var_10 == var_11) {
        p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];
        if ((var_9->_M_nxt != (type_3 *)0x0) &&
           (var_9->_M_nxt[2]._M_nxt != (type_3 *)0x0)) {
          (*p_Var10)();
          return;
        }
        goto LAB_0018445b;
      }
      var_12 = p_Var25->_M_nxt;
    } while ((var_12 != (type_3 *)0x0) &&
            (var_11 = var_12[1]._M_nxt, var_9 = p_Var25, var_13 == (type_12)var_11 % var_8));
  }
  p_Var10 = ((pDVar7->lock_).lock_)->_vptr_Lock_impl[3];
LAB_0018445b:
  (*p_Var10)();
  var_12 = (type_3 *)var_14(0x40);
  var_12->_M_nxt = var_10;
  var_11 = var_12 + 7;
  *(type_13 (*) [16])(var_12 + 5) = (type_13  [16])0x0;
  var_11->_M_nxt = (type_3 *)0x0;
  var_12[1]._M_nxt = var_11;
  var_12[2]._M_nxt = (type_3 *)0x1;
  var_12[3]._M_nxt = (type_3 *)0x0;
  var_12[4]._M_nxt = (type_3 *)0x0;
  *(type_14 *)&var_12[5]._M_nxt = 0x3f800000;
  var_12[6]._M_nxt = (type_3 *)0x0;
  var_16 = var_15((char *)var_10);
  if (var_16 == (type_9 *)0x0) {
    piVar20 = var_17();
    var_18 = *piVar20;
    if ((var_18 != 2) && (var_18 != 0x14)) {
      var_27 = var_19(var_18);
      var_11 = var_12->_M_nxt;
      format = (char *)var_20("%s: can not read directory: %s");
      gold::var_21(format,var_11,var_27);
    }
  }
  else {
    var_5 = &var_7.field_2;
LAB_001844e2:
    var_23 = var_22(var_16);
    if (var_23 != (type_10 *)0x0) {
      do {
        var_27 = var_23->d_name;
        var_7._M_dataplus._M_p = (type_15)var_5;
        var_28 = var_24(var_27);
        std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>::
        var_25<var_26*>(&var_7,var_27,var_27 + var_28);
        var_46 = (type_3 *)
                  std::var_29(var_7._M_dataplus._M_p,var_7._M_string_length,0xc70f6907);
        var_43 = (type_12)var_46 % (type_12)var_12[2]._M_nxt;
        var_32 = std::
                  _Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_17,_std::__detail::var_30<true,var_6,var_6>var_3>
                  ::var_31
                            ((_Hashtable<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,_std::var_1<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Identity,_std::equal_to<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::hash<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_3>,_std::__detail::_Mod_range_hashing,_std::__detail::_Default_ranged_hash,_std::__detail::type_17,_std::__detail::var_30<true,var_6,var_6>var_3>
                              *)(var_12 + 1),var_43,&var_7,(type_16)var_46);
        if ((var_32 == (type_11 *)0x0) || (var_32->_M_nxt == (type_3 *)0x0)) {
                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */
          var_33 = (type_3 *)var_14(0x30);
          var_33->_M_nxt = (type_3 *)0x0;
          var_33[1]._M_nxt = var_33 + 3;
          if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
               *)var_7._M_dataplus._M_p == var_5) {
            var_33[3]._M_nxt =
                 (type_3 *)
                 var_34(var_7.field_2._M_allocated_capacity._1_7_,
                          var_7.field_2._M_local_buf[0]);
            var_33[4]._M_nxt = (type_3 *)var_7.field_2._8_8_;
          }
          else {
            var_33[1]._M_nxt = (type_3 *)var_7._M_dataplus._M_p;
            var_33[3]._M_nxt =
                 (type_3 *)
                 var_34(var_7.field_2._M_allocated_capacity._1_7_,
                          var_7.field_2._M_local_buf[0]);
          }
          var_40 = var_12[4]._M_nxt;
          var_39 = var_12[2]._M_nxt;
          var_7.field_2._M_local_buf[0] = '\0';
          var_33[2]._M_nxt = (type_3 *)var_7._M_string_length;
          var_7._M_string_length = 0;
          var_7._M_dataplus._M_p = (type_15)var_5;
          var_36 = std::__detail::_Prime_rehash_policy::var_35
                            ((type_17 *)(var_12 + 5),(type_12)var_39,(type_12)var_40,1);
          if (var_36 == '\0') {
            var_40 = var_12[1]._M_nxt;
          }
          else {
            if (var_37 ==
                (_Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_6>var_3>var_3>
                 *)0x1) {
              var_12[7]._M_nxt = (type_3 *)0x0;
              var_40 = var_11;
            }
            else {
                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */
              var_40 = (type_3 *)
                        std::__detail::
                        _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_6>var_3>var_3>
                        ::var_38(var_37,(size_t)var_39);
            }
            var_39 = var_12[3]._M_nxt;
            var_12[3]._M_nxt = (type_3 *)0x0;
            if (var_39 != (type_3 *)0x0) {
              var_8 = 0;
              do {
                while( true ) {
                  var_41 = var_39->_M_nxt;
                  var_13 = (type_12)var_39[5]._M_nxt % (type_12)var_37;
                  p_Var1 = var_40 + var_13;
                  if (p_Var1->_M_nxt == (type_3 *)0x0) break;
                  var_39->_M_nxt = p_Var1->_M_nxt->_M_nxt;
                  p_Var1->_M_nxt->_M_nxt = var_39;
                  var_13 = var_8;
LAB_0018471c:
                  var_39 = var_41;
                  var_8 = var_13;
                  if (var_41 == (type_3 *)0x0) goto LAB_00184768;
                }
                var_39->_M_nxt = var_12[3]._M_nxt;
                var_12[3]._M_nxt = var_39;
                p_Var1->_M_nxt = var_12 + 3;
                if (var_39->_M_nxt == (type_3 *)0x0) goto LAB_0018471c;
                var_40[var_8]._M_nxt = var_39;
                var_39 = var_41;
                var_8 = var_13;
              } while (var_41 != (type_3 *)0x0);
            }
LAB_00184768:
            if (var_11 != var_12[1]._M_nxt) {
              var_42(var_12[1]._M_nxt);
            }
            var_12[2]._M_nxt = (type_3 *)var_37;
            var_12[1]._M_nxt = var_40;
            var_43 = (type_12)var_46 % (type_12)var_37;
          }
          var_33[5]._M_nxt = var_46;
          var_46 = var_40 + var_43;
          if (var_46->_M_nxt == (type_3 *)0x0) {
            var_39 = var_12[3]._M_nxt;
            var_12[3]._M_nxt = var_33;
            var_33->_M_nxt = var_39;
            if (var_39 != (type_3 *)0x0) {
              var_40[(type_12)var_39[5]._M_nxt % (type_12)var_12[2]._M_nxt]._M_nxt = var_33;
            }
            var_46->_M_nxt = var_12 + 3;
          }
          else {
            var_33->_M_nxt = var_46->_M_nxt->_M_nxt;
            var_46->_M_nxt->_M_nxt = var_33;
          }
          var_12[4]._M_nxt = (type_3 *)((long)&(var_12[4]._M_nxt)->_M_nxt + 1);
        }
        if ((anon_union_16_2_edb7204a_for_basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>var_4
             *)var_7._M_dataplus._M_p == var_5) goto LAB_001844e2;
        var_42(var_7._M_dataplus._M_p);
        var_23 = var_22(var_16);
        if (var_23 == (type_10 *)0x0) break;
      } while( true );
    }
    var_18 = var_44(var_16);
    if (var_18 != 0) {
      piVar20 = var_17();
      var_27 = var_19(*piVar20);
      gold::var_45("%s: closedir failed: %s",var_12->_M_nxt,var_27);
    }
  }
  (*((pDVar7->lock_).lock_)->_vptr_Lock_impl[2])();
                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */
  var_11 = (type_3 *)var_14(0x18);
  var_8 = (pDVar7->caches_)._M_h._M_bucket_count;
  var_11[2]._M_nxt = var_12;
  var_11->_M_nxt = (type_3 *)0x0;
  var_11[1]._M_nxt = var_10;
  var_13 = (type_12)var_10 % var_8;
  var_9 = (pDVar7->caches_)._M_h._M_buckets[var_13];
  if (var_9 != (type_6)0x0) {
    var_12 = var_9->_M_nxt[1]._M_nxt;
    var_46 = var_9->_M_nxt;
    while (p_Var25 = var_46, var_10 != var_12) {
      var_46 = p_Var25->_M_nxt;
      if ((var_46 == (type_3 *)0x0) ||
         (var_12 = var_46[1]._M_nxt, var_9 = p_Var25, var_13 != (type_12)var_12 % var_8))
      goto LAB_00184868;
    }
    if (var_9->_M_nxt != (type_3 *)0x0) {
      var_42(var_11);
                    /* WARNING: Subroutine does not return */
      gold::var_47("../../gold/dirsearch.cc",0x97,"add");
    }
  }
LAB_00184868:
                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */
  var_36 = std::__detail::_Prime_rehash_policy::var_35
                    (&(pDVar7->caches_)._M_h._M_rehash_policy,var_8,
                     (pDVar7->caches_)._M_h._M_element_count,1);
  if (var_36 == '\0') {
    var_49 = (pDVar7->caches_)._M_h._M_buckets;
  }
  else {
    if (var_48 ==
        (_Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_6>var_3>var_3>
         *)0x1) {
      (pDVar7->caches_)._M_h._M_single_bucket = (type_6)0x0;
      var_49 = &(pDVar7->caches_)._M_h._M_single_bucket;
    }
    else {
                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */
      var_49 = std::__detail::
                 _Hashtable_alloc<std::var_1<std::__detail::_Hash_node<std::__cxx11::basic_string<var_2,_std::char_traits<var_2>,_std::var_1<var_2>var_3>,var_6>var_3>var_3>
                 ::var_38(var_48,var_8);
    }
    var_12 = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;
    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = (type_3 *)0x0;
    if (var_12 != (type_3 *)0x0) {
      var_8 = 0;
      do {
        var_46 = var_12->_M_nxt;
        var_13 = (type_12)var_12[1]._M_nxt % (type_12)var_48;
        var_50 = var_49 + var_13;
        if (*var_50 == (type_6)0x0) {
          var_12->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;
          (pDVar7->caches_)._M_h._M_before_begin._M_nxt = var_12;
          *var_50 = &(pDVar7->caches_)._M_h._M_before_begin;
          if (var_12->_M_nxt != (type_3 *)0x0) {
            var_49[var_8] = var_12;
          }
        }
        else {
          var_12->_M_nxt = (*var_50)->_M_nxt;
          (*var_50)->_M_nxt = var_12;
          var_13 = var_8;
        }
        var_12 = var_46;
        var_8 = var_13;
      } while (var_46 != (type_3 *)0x0);
    }
    var_50 = (pDVar7->caches_)._M_h._M_buckets;
    if (var_50 != &(pDVar7->caches_)._M_h._M_single_bucket) {
      var_42(var_50);
    }
    (pDVar7->caches_)._M_h._M_bucket_count = (type_4)var_48;
    var_13 = (type_12)var_10 % (type_12)var_48;
    (pDVar7->caches_)._M_h._M_buckets = var_49;
  }
  if (var_49[var_13] == (type_6)0x0) {
    var_11->_M_nxt = (pDVar7->caches_)._M_h._M_before_begin._M_nxt;
    var_49 = (pDVar7->caches_)._M_h._M_buckets;
    (pDVar7->caches_)._M_h._M_before_begin._M_nxt = var_11;
    if (var_11->_M_nxt != (type_3 *)0x0) {
      var_49[(type_12)var_11->_M_nxt[1]._M_nxt % (pDVar7->caches_)._M_h._M_bucket_count] = var_11;
    }
    var_49[var_13] = &(pDVar7->caches_)._M_h._M_before_begin;
  }
  else {
    var_11->_M_nxt = var_49[var_13]->_M_nxt;
    (pDVar7->caches_)._M_h._M_buckets[var_13]->_M_nxt = var_11;
  }
  pLVar5 = (pDVar7->lock_).lock_;
  psVar3 = &(pDVar7->caches_)._M_h._M_element_count;
  *psVar3 = *psVar3 + 1;
  (*pLVar5->_vptr_Lock_impl[3])();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (return_statement))) (goto_statement label: (statement_identifier)))) (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)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) consequence: (compound_statement (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 (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))))) (expression_statement (assignment_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))))) (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: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_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: (cast_expression type: (type_descriptor type: (type_identifier)) 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))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (pointer_expression argument: (identifier)) (identifier))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list))) (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 (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))))))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (pointer_expression argument: (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_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))))) (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: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (if_statement 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: (identifier))) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (number_literal)))))) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list))) (return_statement))))

void MASKED(long param_1)

{
  char *__name;
  undefined8 uVar1;
  long lVar2;
  undefined8 *puVar3;
  char cVar4;
  int iVar5;
  code *pcVar6;
  undefined8 *puVar7;
  DIR *__dirp;
  dirent64 *pdVar8;
  size_t sVar9;
  long *plVar10;
  long *plVar11;
  undefined8 *puVar12;
  undefined8 uVar13;
  undefined8 *puVar14;
  int *piVar15;
  char *pcVar16;
  ulong uVar17;
  ulong uVar18;
  ulong extraout_RDX;
  ulong uVar19;
  ulong extraout_RDX_00;
  long *plVar20;
  long *plVar21;
  ulong local_90;
  undefined1 *local_58;
  long local_50;
  undefined1 local_48;
  undefined7 uStack_47;
  long lStack_40;
  
  puVar3 = DAT_00458950;
  __name = *(char **)(param_1 + 0x38);
  (**(code **)(*(long *)*DAT_00458950 + 0x10))();
  uVar17 = (ulong)__name % (ulong)puVar3[2];
  plVar10 = *(long **)(puVar3[1] + uVar17 * 8);
  if (plVar10 != (long *)0x0) {
    pcVar16 = (char *)((long *)*plVar10)[1];
    plVar11 = (long *)*plVar10;
    do {
      plVar20 = plVar11;
      if (__name == pcVar16) {
        pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);
        if ((*plVar10 != 0) && (*(long *)(*plVar10 + 0x10) != 0)) {
          (*pcVar6)();
          return;
        }
        goto LAB_0018445b;
      }
      plVar11 = (long *)*plVar20;
    } while ((plVar11 != (long *)0x0) &&
            (pcVar16 = (char *)plVar11[1], plVar10 = plVar20,
            uVar17 == (ulong)pcVar16 % (ulong)puVar3[2]));
  }
  pcVar6 = *(code **)(*(long *)*puVar3 + 0x18);
LAB_0018445b:
  (*pcVar6)();
  puVar7 = (undefined8 *)FUN_002ee780(0x40);
  *puVar7 = __name;
  puVar14 = puVar7 + 7;
  *(undefined1 (*) [16])(puVar7 + 5) = (undefined1  [16])0x0;
  *puVar14 = 0;
  puVar7[1] = puVar14;
  puVar7[2] = 1;
  puVar7[3] = 0;
  puVar7[4] = 0;
  *(undefined4 *)(puVar7 + 5) = 0x3f800000;
  puVar7[6] = 0;
  __dirp = opendir(__name);
  if (__dirp == (DIR *)0x0) {
    piVar15 = __errno_location();
    iVar5 = *piVar15;
    if ((iVar5 != 2) && (iVar5 != 0x14)) {
      pcVar16 = strerror(iVar5);
      uVar1 = *puVar7;
      uVar13 = gettext("%s: can not read directory: %s");
      FUN_00185680(uVar13,uVar1,pcVar16);
    }
  }
  else {
LAB_001844e2:
    pdVar8 = readdir64(__dirp);
    if (pdVar8 != (dirent64 *)0x0) {
      do {
        pcVar16 = pdVar8->d_name;
        local_58 = &local_48;
        sVar9 = strlen(pcVar16);
        FUN_001723b0(&local_58,pcVar16,pcVar16 + sVar9);
        uVar17 = FUN_002ee800(local_58,local_50,0xc70f6907);
        local_90 = uVar17 % (ulong)puVar7[2];
        plVar10 = (long *)FUN_00185110(puVar7 + 1,local_90,&local_58,uVar17);
        if ((plVar10 == (long *)0x0) || (*plVar10 == 0)) {
                    /* try { // try from 00184665 to 001846d6 has its CatchHandler @ 00184a4c */
          plVar10 = (long *)FUN_002ee780(0x30);
          *plVar10 = 0;
          plVar10[1] = (long)(plVar10 + 3);
          if (local_58 == &local_48) {
            plVar10[3] = CONCAT71(uStack_47,local_48);
            plVar10[4] = lStack_40;
          }
          else {
            plVar10[1] = (long)local_58;
            plVar10[3] = CONCAT71(uStack_47,local_48);
          }
          uVar1 = puVar7[4];
          uVar13 = puVar7[2];
          local_48 = 0;
          plVar10[2] = local_50;
          local_50 = 0;
          local_58 = &local_48;
          cVar4 = FUN_0032e4e0(puVar7 + 5,uVar13,uVar1,1);
          if (cVar4 == '\0') {
            puVar12 = (undefined8 *)puVar7[1];
          }
          else {
            if (extraout_RDX == 1) {
              puVar7[7] = 0;
              puVar12 = puVar14;
            }
            else {
                    /* try { // try from 001846ef to 001846f3 has its CatchHandler @ 00184a54 */
              puVar12 = (undefined8 *)FUN_00184130();
            }
            plVar11 = (long *)puVar7[3];
            puVar7[3] = 0;
            if (plVar11 != (long *)0x0) {
              uVar18 = 0;
              do {
                while( true ) {
                  plVar21 = (long *)*plVar11;
                  uVar19 = (ulong)plVar11[5] % extraout_RDX;
                  plVar20 = puVar12 + uVar19;
                  if ((long *)*plVar20 == (long *)0x0) break;
                  *plVar11 = *(long *)*plVar20;
                  *(long **)*plVar20 = plVar11;
                  uVar19 = uVar18;
LAB_0018471c:
                  plVar11 = plVar21;
                  uVar18 = uVar19;
                  if (plVar21 == (long *)0x0) goto LAB_00184768;
                }
                *plVar11 = puVar7[3];
                puVar7[3] = plVar11;
                *plVar20 = (long)(puVar7 + 3);
                if (*plVar11 == 0) goto LAB_0018471c;
                puVar12[uVar18] = plVar11;
                plVar11 = plVar21;
                uVar18 = uVar19;
              } while (plVar21 != (long *)0x0);
            }
LAB_00184768:
            if (puVar14 != (undefined8 *)puVar7[1]) {
              FUN_002eff50();
            }
            puVar7[2] = extraout_RDX;
            puVar7[1] = puVar12;
            local_90 = uVar17 % extraout_RDX;
          }
          plVar10[5] = uVar17;
          plVar11 = puVar12 + local_90;
          if ((long *)*plVar11 == (long *)0x0) {
            lVar2 = puVar7[3];
            puVar7[3] = plVar10;
            *plVar10 = lVar2;
            if (lVar2 != 0) {
              puVar12[*(ulong *)(lVar2 + 0x28) % (ulong)puVar7[2]] = plVar10;
            }
            *plVar11 = (long)(puVar7 + 3);
          }
          else {
            *plVar10 = *(long *)*plVar11;
            *(long **)*plVar11 = plVar10;
          }
          puVar7[4] = puVar7[4] + 1;
        }
        if (local_58 == &local_48) goto LAB_001844e2;
        FUN_002eff50();
        pdVar8 = readdir64(__dirp);
        if (pdVar8 == (dirent64 *)0x0) break;
      } while( true );
    }
    iVar5 = closedir(__dirp);
    if (iVar5 != 0) {
      piVar15 = __errno_location();
      pcVar16 = strerror(*piVar15);
      FUN_00185730("%s: closedir failed: %s",*puVar7,pcVar16);
    }
  }
  (**(code **)(*(long *)*puVar3 + 0x10))();
                    /* try { // try from 001845b2 to 00184655 has its CatchHandler @ 00184a3f */
  plVar11 = (long *)FUN_002ee780(0x18);
  uVar17 = puVar3[2];
  plVar11[2] = (long)puVar7;
  *plVar11 = 0;
  plVar11[1] = (long)__name;
  uVar18 = (ulong)__name % uVar17;
  plVar10 = *(long **)(puVar3[1] + uVar18 * 8);
  if (plVar10 != (long *)0x0) {
    pcVar16 = (char *)((long *)*plVar10)[1];
    plVar20 = (long *)*plVar10;
    while (plVar21 = plVar20, __name != pcVar16) {
      plVar20 = (long *)*plVar21;
      if ((plVar20 == (long *)0x0) ||
         (pcVar16 = (char *)plVar20[1], plVar10 = plVar21, uVar18 != (ulong)pcVar16 % uVar17))
      goto LAB_00184868;
    }
    if (*plVar10 != 0) {
      FUN_002eff50(plVar11);
                    /* WARNING: Subroutine does not return */
      FUN_0018dcf0("../../gold/dirsearch.cc",0x97,&DAT_0038903f);
    }
  }
LAB_00184868:
                    /* try { // try from 0018487c to 00184880 has its CatchHandler @ 00184a3f */
  cVar4 = FUN_0032e4e0(puVar3 + 5,uVar17,puVar3[4],1);
  if (cVar4 == '\0') {
    puVar14 = (undefined8 *)puVar3[1];
  }
  else {
    if (extraout_RDX_00 == 1) {
      puVar3[7] = 0;
      puVar14 = puVar3 + 7;
    }
    else {
                    /* try { // try from 00184899 to 0018489d has its CatchHandler @ 00184a47 */
      puVar14 = (undefined8 *)FUN_00184130(extraout_RDX_00);
    }
    plVar10 = (long *)puVar3[3];
    puVar3[3] = 0;
    if (plVar10 != (long *)0x0) {
      uVar17 = 0;
      do {
        plVar21 = (long *)*plVar10;
        uVar18 = (ulong)plVar10[1] % extraout_RDX_00;
        plVar20 = puVar14 + uVar18;
        if ((long *)*plVar20 == (long *)0x0) {
          *plVar10 = puVar3[3];
          puVar3[3] = plVar10;
          *plVar20 = (long)(puVar3 + 3);
          if (*plVar10 != 0) {
            puVar14[uVar17] = plVar10;
          }
        }
        else {
          *plVar10 = *(long *)*plVar20;
          *(long **)*plVar20 = plVar10;
          uVar18 = uVar17;
        }
        plVar10 = plVar21;
        uVar17 = uVar18;
      } while (plVar21 != (long *)0x0);
    }
    if ((undefined8 *)puVar3[1] != puVar3 + 7) {
      FUN_002eff50();
    }
    puVar3[2] = extraout_RDX_00;
    uVar18 = (ulong)__name % extraout_RDX_00;
    puVar3[1] = puVar14;
  }
  if ((long *)puVar14[uVar18] == (long *)0x0) {
    *plVar11 = puVar3[3];
    lVar2 = puVar3[1];
    puVar3[3] = plVar11;
    if (*plVar11 != 0) {
      *(long **)(lVar2 + (*(ulong *)(*plVar11 + 8) % (ulong)puVar3[2]) * 8) = plVar11;
    }
    *(undefined8 **)(lVar2 + uVar18 * 8) = puVar3 + 3;
  }
  else {
    *plVar11 = *(long *)puVar14[uVar18];
    **(undefined8 **)(puVar3[1] + uVar18 * 8) = plVar11;
  }
  puVar3[4] = puVar3[4] + 1;
  (**(code **)(*(long *)*puVar3 + 0x18))();
  return;
}

