
/* DWARF original prototype: __bucket_type *
   _M_allocate_buckets(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
   * this, size_t __n) */

__bucket_type * __thiscall
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
          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
           *this,size_t __n)

{
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  _Var1;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *p_Var2;
  undefined4 uVar3;
  __bucket_type *pp_Var4;
  __bucket_type *pp_Var5;
  Task *t;
  uint uVar6;
  undefined4 *puVar7;
  uint *puVar8;
  int iVar9;
  int iVar10;
  uint *puVar11;
  uint *puVar12;
  uint *puVar13;
  undefined4 *puVar14;
  uint uVar15;
  int *piVar16;
  _Hash_node_base *p_Var17;
  int *piVar18;
  __bucket_type p_Var19;
  int *piVar20;
  int *piVar21;
  undefined4 *in_a2;
  int iVar22;
  __bucket_type p_Var23;
  _Hash_node_base *p_Var24;
  __bucket_type p_Var25;
  uint *puVar26;
  __bucket_type *pp_Var27;
  uint unaff_s1;
  __bucket_type p_Var28;
  Task *unaff_s3;
  uint *puVar29;
  Workqueue *unaff_s4;
  uint uVar30;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *unaff_s5;
  uint *puVar31;
  undefined *puVar32;
  code *pcVar33;
  undefined *puVar34;
  code *pcVar35;
  uint uVar36;
  uint *puStack_f8;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *p_Stack_f4;
  uint uStack_f0;
  uint uStack_ec;
  uint uStack_e8;
  uint uStack_e4;
  char acStack_e0 [4];
  uint uStack_dc;
  uint *puStack_d8;
  uint *puStack_d4;
  code *pcStack_d0;
  uint uStack_cc;
  int iStack_c8;
  undefined1 *puStack_c4;
  undefined1 **ppuStack_c0;
  uint *puStack_bc;
  Workqueue *pWStack_b8;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *p_Stack_b4;
  uint *puStack_b0;
  undefined1 *puStack_88;
  int iStack_84;
  undefined1 auStack_80 [20];
  __bucket_type *pp_Stack_6c;
  uint uStack_68;
  Task *pTStack_60;
  code *pcStack_5c;
  undefined *puStack_48;
  
  if (this < (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
              *)0x40000000) {
    uVar3 = (*(code *)PTR_operator_new_0043233c)((int)this << 2);
    pp_Var4 = (__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2);
    return pp_Var4;
  }
  puVar32 = PTR___throw_bad_alloc_00432404;
  (*(code *)PTR___throw_bad_alloc_00432404)();
  puVar34 = puVar32 + 0x1dbfbc;
  puVar31 = *(uint **)(puVar32 + 0x1d5104);
  puStack_48 = puVar34;
  if (puVar31[-0xa0c] == 0) {
    unaff_s1 = (**(code **)(puVar32 + 0x1d4128))(0x20);
    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);
    pp_Var27 = (__bucket_type *)*in_a2;
    unaff_s3 = (Task *)(this + 4);
    pp_Var4 = (__bucket_type *)in_a2[1];
    _Var1 = this[4];
    iVar22 = *(int *)(puStack_48 + -0x7e1c);
    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;
    *(undefined4 *)(unaff_s1 + 0x10) = 0;
    uVar3 = *(undefined4 *)(iVar22 + -0x636c);
    *(undefined4 *)(unaff_s1 + 8) = 1;
    *(undefined4 *)(unaff_s1 + 0x1c) = 0;
    *(undefined4 *)(unaff_s1 + 0xc) = 0;
    *(undefined4 *)(unaff_s1 + 0x18) = 0;
    puVar31[-0xa0c] = unaff_s1;
    *(undefined4 **)this = in_a2;
    *(undefined4 *)(unaff_s1 + 0x14) = uVar3;
    unaff_s4 = (Workqueue *)__n;
    unaff_s5 = this;
    puVar34 = puStack_48;
    if (_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                  )0x0) {
      *(undefined4 *)(this + 0xc) = 0;
      pp_Var5 = (__bucket_type *)
                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);
      *(__bucket_type **)(this + 8) = pp_Var5;
      if (pp_Var27 != pp_Var4) {
        iVar22 = *(int *)(puStack_48 + -0x7fd8);
        do {
          p_Var28 = *pp_Var27;
          pp_Var27 = pp_Var27 + 7;
          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);
          t->list_next_ = (Task *)0x0;
          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;
          (t->name_)._M_string_length = 0;
          (t->name_).field_2._M_local_buf[0] = '\0';
          t->should_run_soon_ = false;
          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);
          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;
          t[1].list_next_ = unaff_s3;
          gold::Workqueue::queue((Workqueue *)__n,t);
          pp_Var5 = (__bucket_type *)in_a2[1];
        } while (pp_Var5 != pp_Var27);
      }
      return pp_Var5;
    }
  }
  else {
    (**(code **)(puVar32 + 0x1d41b0))
              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8);
  }
  pp_Var27 = (__bucket_type *)(*(int *)(puVar34 + -0x7fc4) + 0x48a0);
  (**(code **)(puVar34 + -0x7e0c))(pp_Var27,0x97,*(int *)(puVar34 + -0x7f64) + 0x1398);
  iVar22 = 0x20;
  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);
  pcVar33 = *(code **)(puStack_48 + -0x7f78);
  pcVar35 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;
  pp_Var4 = pp_Var27;
  (*pcVar33)();
  puStack_88 = auStack_80;
  pp_Stack_6c = pp_Var27;
  uStack_68 = unaff_s1;
  pTStack_60 = unaff_s3;
  pcStack_5c = pcVar35;
  (**(code **)(pcVar33 + 0x1d40ac))
            (&puStack_88,*(int *)(pcVar33 + 0x1d3e90) + 0x1308,*(int *)(pcVar33 + 0x1d3e90) + 0x1317
             ,0);
  puVar29 = *(uint **)(iVar22 + 0x24);
  uVar6 = (**(code **)(pcVar33 + 0x1d83a0))(puVar29);
  if (uVar6 <= 0x7fffffffU - iStack_84) {
    puVar7 = (undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6);
    p_Var28 = (__bucket_type)(puVar7 + 2);
    *pp_Var4 = (__bucket_type)(pp_Var4 + 2);
    if ((__bucket_type)*puVar7 == p_Var28) {
      p_Var25 = (__bucket_type)puVar7[3];
      p_Var23 = (__bucket_type)puVar7[4];
      p_Var19 = (__bucket_type)puVar7[5];
      ((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;
      pp_Var4[3] = p_Var25;
      pp_Var4[4] = p_Var23;
      pp_Var4[5] = p_Var19;
    }
    else {
      *pp_Var4 = (__bucket_type)*puVar7;
      pp_Var4[2] = (__bucket_type)puVar7[2];
    }
    pp_Var4[1] = (__bucket_type)puVar7[1];
    *puVar7 = p_Var28;
    puVar7[1] = 0;
    *(undefined1 *)(puVar7 + 2) = 0;
    if (puStack_88 != auStack_80) {
      (**(code **)(pcVar33 + 0x1d3eb0))();
    }
    return pp_Var4;
  }
  iVar22 = *(int *)(pcVar33 + 0x1d3fd8) + -0x6240;
  (**(code **)(pcVar33 + 0x1d40a4))();
  if (puStack_88 != auStack_80) {
    (**(code **)(pcVar33 + 0x1d3eb0))(puStack_88);
  }
  pcVar33 = *(code **)(pcVar33 + 0x1d3e7c);
  iVar9 = iVar22;
  (*pcVar33)();
  puVar7 = *(undefined4 **)(*(int *)(pcVar33 + 0x1d4da8) + -0x2830);
  uVar30 = *(uint *)(iVar9 + 0x24);
  iStack_c8 = iVar22;
  puStack_c4 = auStack_80;
  ppuStack_c0 = &puStack_88;
  puStack_bc = puVar29;
  pWStack_b8 = unaff_s4;
  p_Stack_b4 = unaff_s5;
  puStack_b0 = puVar31;
  (**(code **)(*(int *)*puVar7 + 8))((int *)*puVar7);
  uVar6 = puVar7[2];
  if (uVar6 == 0) {
    trap(7);
  }
  piVar20 = *(int **)(puVar7[1] + (uVar30 % uVar6) * 4);
  if (piVar20 != (int *)0x0) {
    uVar15 = ((int *)*piVar20)[1];
    piVar21 = (int *)*piVar20;
    do {
      piVar16 = piVar21;
      if (uVar30 == uVar15) {
        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);
        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {
          pp_Var4 = (__bucket_type *)(*pcVar35)();
          return pp_Var4;
        }
        goto LAB_0025e698;
      }
      piVar21 = (int *)*piVar16;
      if (piVar21 == (int *)0x0) break;
      uVar15 = piVar21[1];
      if (uVar6 == 0) {
        trap(7);
      }
      piVar20 = piVar16;
    } while (uVar30 % uVar6 == uVar15 % uVar6);
  }
  pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);
LAB_0025e698:
  (*pcVar35)();
  puVar8 = (uint *)(**(code **)(pcVar33 + 0x1d3dcc))(0x20);
  puStack_d4 = puVar8 + 7;
  *puVar8 = uVar30;
  iVar22 = *(int *)(pcVar33 + 0x1d3e44);
  pcVar35 = *(code **)(pcVar33 + 0x1d8260);
  puVar8[1] = (uint)puStack_d4;
  uVar6 = *(uint *)(iVar22 + -0x636c);
  puVar8[4] = 0;
  puVar8[7] = 0;
  puVar8[2] = 1;
  puVar8[3] = 0;
  puVar8[6] = 0;
  puVar8[5] = uVar6;
  iVar22 = (*pcVar35)(uVar30);
  if (iVar22 == 0) {
    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d8394))();
    if (*piVar20 == 2) goto LAB_0025e80c;
    if (*piVar20 == 0x14) goto LAB_0025e80c;
    puVar29 = (uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318);
    uVar6 = *puVar8;
    uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*piVar20);
    (**(code **)(pcVar33 + 0x1d4814))(puVar29,uVar6,uVar3);
    piVar20 = (int *)*puVar7;
    goto LAB_0025e810;
  }
  puStack_d8 = puVar8 + 3;
  puVar31 = &uStack_f0;
  pcStack_d0 = (code *)(*(int *)(pcVar33 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);
  if (iVar9 == 0) goto LAB_0025e7f8;
  do {
    iVar9 = iVar9 + 0x13;
    puStack_f8 = puVar31;
    iVar10 = (**(code **)(pcVar33 + 0x1d820c))(iVar9);
    (**(code **)(pcVar33 + 0x1d3f18))(&puStack_f8,iVar9,iVar9 + iVar10,0);
    unaff_s5 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907);
    if (puVar8[2] == 0) {
      trap(7);
    }
    puVar29 = (uint *)((uint)unaff_s5 % puVar8[2]);
    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5);
    if (piVar20 == (int *)0x0) goto LAB_0025e8e0;
    pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);
    if (*piVar20 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (puStack_f8 == puVar31) goto LAB_0025e720;
      (**(code **)(pcVar33 + 0x1d3d1c))();
      iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);
      if (iVar9 != 0) break;
LAB_0025e7f8:
      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);
      if (iVar9 == 0) {
LAB_0025e80c:
        piVar20 = (int *)*puVar7;
      }
      else {
        uVar6 = *puVar8;
        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();
        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);
        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);
        piVar20 = (int *)*puVar7;
      }
LAB_0025e810:
      (**(code **)(*piVar20 + 8))(piVar20);
      piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);
      uVar6 = puVar7[2];
      iVar9 = puVar7[1];
      if (uVar6 == 0) {
        trap(7);
      }
      piVar20[2] = (int)puVar8;
      *piVar20 = 0;
      piVar20[1] = uVar30;
      puVar8 = (uint *)((uVar30 % uVar6) * 4);
      piVar21 = *(int **)(iVar9 + (int)puVar8);
      if (piVar21 == (int *)0x0) {
LAB_0025eb6c:
        puVar14 = puVar7 + 5;
        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);
        p_Var2 = p_Stack_f4;
        if (puStack_f8._0_1_ == '\0') {
          pp_Var4 = (__bucket_type *)puVar7[1];
        }
        else {
          if (p_Stack_f4 ==
              (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
               *)0x1) {
            pp_Var4 = (__bucket_type *)(puVar7 + 7);
            puVar7[7] = 0;
          }
          else {
            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);
          }
          p_Var17 = (_Hash_node_base *)puVar7[3];
          puVar7[3] = 0;
          if (p_Var17 != (_Hash_node_base *)0x0) {
            uVar6 = 0;
            do {
              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                             *)0x0) {
                trap(7);
              }
              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;
              pp_Var27 = pp_Var4 + uVar15;
              p_Var24 = p_Var17->_M_nxt;
              if (*pp_Var27 == (__bucket_type)0x0) {
                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];
                puVar7[3] = p_Var17;
                *pp_Var27 = (__bucket_type)(puVar7 + 3);
                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {
                  pp_Var4[uVar6] = p_Var17;
                }
              }
              else {
                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;
                (*pp_Var27)->_M_nxt = p_Var17;
                uVar15 = uVar6;
              }
              p_Var17 = p_Var24;
              uVar6 = uVar15;
            } while (p_Var24 != (_Hash_node_base *)0x0);
          }
          if ((undefined4 *)puVar7[1] != puVar7 + 7) {
            (**(code **)(pcVar33 + 0x1d3d1c))();
          }
          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                         *)0x0) {
            trap(7);
          }
          puVar7[2] = p_Var2;
          puVar7[1] = pp_Var4;
          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);
        }
        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {
          *piVar20 = puVar7[3];
          puVar7[3] = piVar20;
          if (*piVar20 == 0) {
            iVar22 = puVar7[1];
          }
          else {
            iVar22 = puVar7[1];
            if (puVar7[2] == 0) {
              trap(7);
            }
            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;
          }
          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;
        }
        else {
          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);
          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;
        }
        iVar22 = *(int *)*puVar7;
        puVar7[4] = puVar7[4] + 1;
        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);
        return pp_Var4;
      }
      uVar15 = ((int *)*piVar21)[1];
      piVar16 = (int *)*piVar21;
      while (piVar18 = piVar16, uVar30 != uVar15) {
        piVar16 = (int *)*piVar18;
        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;
        uVar15 = piVar16[1];
        if (uVar6 == 0) {
          trap(7);
        }
        piVar21 = piVar18;
        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;
      }
      if (*piVar21 == 0) goto LAB_0025eb6c;
      (**(code **)(pcVar33 + 0x1d3d1c))(piVar20);
      (**(code **)(pcVar33 + 0x1d3e54))
                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);
LAB_0025e8e4:
      puVar11 = (uint *)(*pcVar35)(0x20);
      p_Var2 = p_Stack_f4;
      *puVar11 = 0;
      puVar11[1] = (uint)(puVar11 + 3);
      if (puStack_f8 == puVar31) {
        puVar11[3] = uStack_f0;
        puVar11[4] = uStack_ec;
        puVar11[5] = uStack_e8;
        puVar11[6] = uStack_e4;
      }
      else {
        puVar11[1] = (uint)puStack_f8;
        puVar11[3] = uStack_f0;
      }
      uStack_cc = puVar8[6];
      uVar15 = puVar8[4];
      uVar6 = puVar8[2];
      pcVar35 = *(code **)(pcVar33 + 0x1d45c0);
      p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                    *)0x0;
      puVar11[2] = (uint)p_Var2;
      uStack_f0 = uStack_f0 & 0xffffff;
      puStack_f8 = puVar31;
      (*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);
      uVar6 = uStack_dc;
      if (acStack_e0[0] == '\0') {
        puVar12 = (uint *)puVar8[1];
        puVar11[7] = (uint)unaff_s5;
        puVar29 = puVar12 + (int)puVar29;
        puVar13 = (uint *)*puVar29;
        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        uVar6 = puVar8[3];
        puVar8[3] = (uint)puVar11;
        *puVar11 = uVar6;
        if (uVar6 != 0) {
          if (puVar8[2] == 0) {
            trap(7);
          }
          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;
        }
        *puVar29 = (uint)puStack_d8;
      }
      else {
        if (uStack_dc == 1) {
          puVar8[7] = 0;
          puVar12 = puStack_d4;
        }
        else {
          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);
        }
        puVar29 = (uint *)puVar8[3];
        puVar8[3] = 0;
        if (puVar29 != (uint *)0x0) {
          uVar15 = 0;
          do {
            while( true ) {
              if (uVar6 == 0) {
                trap(7);
              }
              uVar36 = puVar29[7] % uVar6;
              puVar13 = puVar12 + uVar36;
              puVar26 = (uint *)*puVar29;
              if ((uint *)*puVar13 == (uint *)0x0) break;
              *puVar29 = *(uint *)*puVar13;
              *(uint **)*puVar13 = puVar29;
              uVar36 = uVar15;
LAB_0025e9a0:
              puVar29 = puVar26;
              uVar15 = uVar36;
              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;
            }
            *puVar29 = puVar8[3];
            puVar8[3] = (uint)puVar29;
            *puVar13 = (uint)puStack_d8;
            if (*puVar29 == 0) goto LAB_0025e9a0;
            puVar12[uVar15] = (uint)puVar29;
            puVar29 = puVar26;
            uVar15 = uVar36;
          } while (puVar26 != (uint *)0x0);
        }
LAB_0025ea00:
        if (puStack_d4 != (uint *)puVar8[1]) {
          (**(code **)(pcVar33 + 0x1d3d1c))();
        }
        if (uVar6 == 0) {
          trap(7);
        }
        puVar8[2] = uVar6;
        puVar8[1] = (uint)puVar12;
        puVar11[7] = (uint)unaff_s5;
        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;
        puVar13 = (uint *)*puVar29;
        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *puVar11 = *puVar13;
        *(uint **)*puVar29 = puVar11;
      }
      puVar8[4] = puVar8[4] + 1;
    }
  } while( true );
}



int * FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)

{
  char cVar1;
  undefined4 uVar2;
  int *piVar3;
  int *piVar4;
  Task *pTVar5;
  uint uVar6;
  uint *puVar7;
  uint *puVar8;
  uint *puVar9;
  uint *puVar10;
  undefined4 *puVar11;
  uint uVar12;
  int *piVar13;
  undefined4 *puVar14;
  int iVar15;
  int iVar16;
  uint uVar17;
  uint *puVar18;
  int *piVar19;
  uint unaff_s1;
  int iVar20;
  int *unaff_s2;
  undefined4 *puVar21;
  int *unaff_s3;
  uint *puVar22;
  Workqueue *unaff_s4;
  uint uVar23;
  int *unaff_s5;
  uint *puVar24;
  undefined *puVar25;
  code *pcVar26;
  undefined *puVar27;
  code *pcVar28;
  uint *puStack_f8;
  uint uStack_f4;
  uint uStack_f0;
  uint uStack_ec;
  uint uStack_e8;
  uint uStack_e4;
  char acStack_e0 [4];
  uint uStack_dc;
  uint *puStack_d8;
  uint *puStack_d4;
  code *pcStack_d0;
  uint uStack_cc;
  int iStack_c8;
  undefined1 *puStack_c4;
  undefined1 **ppuStack_c0;
  uint *puStack_bc;
  Workqueue *pWStack_b8;
  int *piStack_b4;
  uint *puStack_b0;
  undefined1 *puStack_88;
  int iStack_84;
  undefined1 auStack_80 [20];
  int *piStack_6c;
  uint uStack_68;
  int *piStack_64;
  int *piStack_60;
  code *pcStack_5c;
  undefined *puStack_48;
  
  if (param_1 < (int *)0x40000000) {
    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);
    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);
    return piVar3;
  }
  puVar25 = PTR___throw_bad_alloc_00432404;
  (*(code *)PTR___throw_bad_alloc_00432404)();
  puVar27 = puVar25 + 0x1dbfbc;
  puVar24 = *(uint **)(puVar25 + 0x1d5104);
  puStack_48 = puVar27;
  if (puVar24[-0xa0c] == 0) {
    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);
    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);
    piVar19 = (int *)*param_3;
    unaff_s3 = param_1 + 1;
    piVar3 = (int *)param_3[1];
    cVar1 = *(char *)(param_1 + 1);
    iVar15 = *(int *)(puStack_48 + -0x7e1c);
    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;
    *(undefined4 *)(unaff_s1 + 0x10) = 0;
    uVar2 = *(undefined4 *)(iVar15 + -0x636c);
    *(undefined4 *)(unaff_s1 + 8) = 1;
    *(undefined4 *)(unaff_s1 + 0x1c) = 0;
    *(undefined4 *)(unaff_s1 + 0xc) = 0;
    *(undefined4 *)(unaff_s1 + 0x18) = 0;
    puVar24[-0xa0c] = unaff_s1;
    *param_1 = (int)param_3;
    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;
    unaff_s2 = param_3;
    unaff_s4 = param_2;
    unaff_s5 = param_1;
    puVar27 = puStack_48;
    if (cVar1 != '\0') {
      param_1[3] = 0;
      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);
      param_1[2] = (int)piVar4;
      if (piVar19 != piVar3) {
        iVar15 = *(int *)(puStack_48 + -0x7fd8);
        do {
          iVar20 = *piVar19;
          piVar19 = piVar19 + 7;
          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);
          *(undefined4 *)(pTVar5 + 4) = 0;
          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;
          *(undefined4 *)(pTVar5 + 0xc) = 0;
          pTVar5[0x10] = (Task)0x0;
          pTVar5[0x20] = (Task)0x0;
          *(int *)pTVar5 = iVar15 + -0x6d48;
          *(int *)(pTVar5 + 0x24) = iVar20;
          *(int **)(pTVar5 + 0x28) = unaff_s3;
          gold::Workqueue::queue(param_2,pTVar5);
          piVar4 = (int *)param_3[1];
        } while (piVar4 != piVar19);
      }
      return piVar4;
    }
  }
  else {
    (**(code **)(puVar25 + 0x1d41b0))
              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);
  }
  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);
  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);
  iVar15 = 0x20;
  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);
  pcVar26 = *(code **)(puStack_48 + -0x7f78);
  pcVar28 = FUN_0025e3dc;
  piVar3 = piVar19;
  (*pcVar26)();
  puStack_88 = auStack_80;
  piStack_6c = piVar19;
  uStack_68 = unaff_s1;
  piStack_64 = unaff_s2;
  piStack_60 = unaff_s3;
  pcStack_5c = pcVar28;
  (**(code **)(pcVar26 + 0x1d40ac))
            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317
             ,0);
  puVar22 = *(uint **)(iVar15 + 0x24);
  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);
  if (uVar6 <= 0x7fffffffU - iStack_84) {
    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);
    piVar4 = piVar19 + 2;
    *piVar3 = (int)(piVar3 + 2);
    if ((int *)*piVar19 == piVar4) {
      iVar16 = piVar19[3];
      iVar20 = piVar19[4];
      iVar15 = piVar19[5];
      piVar3[2] = *piVar4;
      piVar3[3] = iVar16;
      piVar3[4] = iVar20;
      piVar3[5] = iVar15;
    }
    else {
      *piVar3 = *piVar19;
      piVar3[2] = piVar19[2];
    }
    piVar3[1] = piVar19[1];
    *piVar19 = (int)piVar4;
    piVar19[1] = 0;
    *(undefined1 *)(piVar19 + 2) = 0;
    if (puStack_88 != auStack_80) {
      (**(code **)(pcVar26 + 0x1d3eb0))();
    }
    return piVar3;
  }
  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;
  (**(code **)(pcVar26 + 0x1d40a4))();
  if (puStack_88 != auStack_80) {
    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);
  }
  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);
  iVar20 = iVar15;
  (*pcVar26)();
  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);
  uVar23 = *(uint *)(iVar20 + 0x24);
  iStack_c8 = iVar15;
  puStack_c4 = auStack_80;
  ppuStack_c0 = &puStack_88;
  puStack_bc = puVar22;
  pWStack_b8 = unaff_s4;
  piStack_b4 = unaff_s5;
  puStack_b0 = puVar24;
  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);
  uVar6 = puVar21[2];
  if (uVar6 == 0) {
    trap(7);
  }
  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);
  if (piVar3 != (int *)0x0) {
    uVar12 = ((int *)*piVar3)[1];
    piVar19 = (int *)*piVar3;
    do {
      piVar4 = piVar19;
      if (uVar23 == uVar12) {
        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);
        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {
          piVar3 = (int *)(*pcVar28)();
          return piVar3;
        }
        goto LAB_0025e698;
      }
      piVar19 = (int *)*piVar4;
      if (piVar19 == (int *)0x0) break;
      uVar12 = piVar19[1];
      if (uVar6 == 0) {
        trap(7);
      }
      piVar3 = piVar4;
    } while (uVar23 % uVar6 == uVar12 % uVar6);
  }
  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);
LAB_0025e698:
  (*pcVar28)();
  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);
  puStack_d4 = puVar7 + 7;
  *puVar7 = uVar23;
  iVar15 = *(int *)(pcVar26 + 0x1d3e44);
  pcVar28 = *(code **)(pcVar26 + 0x1d8260);
  puVar7[1] = (uint)puStack_d4;
  uVar6 = *(uint *)(iVar15 + -0x636c);
  puVar7[4] = 0;
  puVar7[7] = 0;
  puVar7[2] = 1;
  puVar7[3] = 0;
  puVar7[6] = 0;
  puVar7[5] = uVar6;
  iVar15 = (*pcVar28)(uVar23);
  if (iVar15 == 0) {
    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();
    if (*piVar3 == 2) goto LAB_0025e80c;
    if (*piVar3 == 0x14) goto LAB_0025e80c;
    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);
    uVar6 = *puVar7;
    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);
    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);
    piVar3 = (int *)*puVar21;
    goto LAB_0025e810;
  }
  puStack_d8 = puVar7 + 3;
  puVar24 = &uStack_f0;
  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);
  if (iVar20 == 0) goto LAB_0025e7f8;
  do {
    iVar20 = iVar20 + 0x13;
    puStack_f8 = puVar24;
    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);
    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);
    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);
    if (puVar7[2] == 0) {
      trap(7);
    }
    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);
    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);
    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;
    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);
    if (*piVar3 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (puStack_f8 == puVar24) goto LAB_0025e720;
      (**(code **)(pcVar26 + 0x1d3d1c))();
      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);
      if (iVar20 != 0) break;
LAB_0025e7f8:
      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);
      if (iVar20 == 0) {
LAB_0025e80c:
        piVar3 = (int *)*puVar21;
      }
      else {
        uVar6 = *puVar7;
        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();
        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);
        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);
        piVar3 = (int *)*puVar21;
      }
LAB_0025e810:
      (**(code **)(*piVar3 + 8))(piVar3);
      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);
      uVar6 = puVar21[2];
      iVar20 = puVar21[1];
      if (uVar6 == 0) {
        trap(7);
      }
      piVar3[2] = (int)puVar7;
      *piVar3 = 0;
      piVar3[1] = uVar23;
      puVar7 = (uint *)((uVar23 % uVar6) * 4);
      piVar19 = *(int **)(iVar20 + (int)puVar7);
      if (piVar19 == (int *)0x0) {
LAB_0025eb6c:
        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);
        uVar6 = uStack_f4;
        if (puStack_f8._0_1_ == '\0') {
          puVar11 = (undefined4 *)puVar21[1];
        }
        else {
          if (uStack_f4 == 1) {
            puVar11 = puVar21 + 7;
            puVar21[7] = 0;
          }
          else {
            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);
          }
          piVar19 = (int *)puVar21[3];
          puVar21[3] = 0;
          if (piVar19 != (int *)0x0) {
            uVar12 = 0;
            do {
              if (uVar6 == 0) {
                trap(7);
              }
              uVar17 = (uint)piVar19[1] % uVar6;
              puVar14 = puVar11 + uVar17;
              piVar4 = (int *)*piVar19;
              if ((int *)*puVar14 == (int *)0x0) {
                *piVar19 = puVar21[3];
                puVar21[3] = piVar19;
                *puVar14 = puVar21 + 3;
                if (*piVar19 != 0) {
                  puVar11[uVar12] = piVar19;
                }
              }
              else {
                *piVar19 = *(int *)*puVar14;
                *(int **)*puVar14 = piVar19;
                uVar17 = uVar12;
              }
              piVar19 = piVar4;
              uVar12 = uVar17;
            } while (piVar4 != (int *)0x0);
          }
          if ((undefined4 *)puVar21[1] != puVar21 + 7) {
            (**(code **)(pcVar26 + 0x1d3d1c))();
          }
          if (uVar6 == 0) {
            trap(7);
          }
          puVar21[2] = uVar6;
          puVar21[1] = puVar11;
          puVar7 = (uint *)(uVar23 % uVar6 << 2);
        }
        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {
          *piVar3 = puVar21[3];
          puVar21[3] = piVar3;
          if (*piVar3 == 0) {
            iVar15 = puVar21[1];
          }
          else {
            iVar15 = puVar21[1];
            if (puVar21[2] == 0) {
              trap(7);
            }
            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;
          }
          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;
        }
        else {
          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);
          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;
        }
        iVar15 = *(int *)*puVar21;
        puVar21[4] = puVar21[4] + 1;
        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);
        return piVar3;
      }
      uVar12 = ((int *)*piVar19)[1];
      piVar4 = (int *)*piVar19;
      while (piVar13 = piVar4, uVar23 != uVar12) {
        piVar4 = (int *)*piVar13;
        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;
        uVar12 = piVar4[1];
        if (uVar6 == 0) {
          trap(7);
        }
        piVar19 = piVar13;
        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;
      }
      if (*piVar19 == 0) goto LAB_0025eb6c;
      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);
      (**(code **)(pcVar26 + 0x1d3e54))
                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);
LAB_0025e8e4:
      puVar8 = (uint *)(*pcVar28)(0x20);
      uVar6 = uStack_f4;
      *puVar8 = 0;
      puVar8[1] = (uint)(puVar8 + 3);
      if (puStack_f8 == puVar24) {
        puVar8[3] = uStack_f0;
        puVar8[4] = uStack_ec;
        puVar8[5] = uStack_e8;
        puVar8[6] = uStack_e4;
      }
      else {
        puVar8[1] = (uint)puStack_f8;
        puVar8[3] = uStack_f0;
      }
      uStack_cc = puVar7[6];
      uVar17 = puVar7[4];
      uVar12 = puVar7[2];
      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);
      uStack_f4 = 0;
      puVar8[2] = uVar6;
      uStack_f0 = uStack_f0 & 0xffffff;
      puStack_f8 = puVar24;
      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);
      uVar6 = uStack_dc;
      if (acStack_e0[0] == '\0') {
        puVar9 = (uint *)puVar7[1];
        puVar8[7] = (uint)unaff_s5;
        puVar22 = puVar9 + (int)puVar22;
        puVar10 = (uint *)*puVar22;
        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        uVar6 = puVar7[3];
        puVar7[3] = (uint)puVar8;
        *puVar8 = uVar6;
        if (uVar6 != 0) {
          if (puVar7[2] == 0) {
            trap(7);
          }
          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;
        }
        *puVar22 = (uint)puStack_d8;
      }
      else {
        if (uStack_dc == 1) {
          puVar7[7] = 0;
          puVar9 = puStack_d4;
        }
        else {
          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);
        }
        puVar22 = (uint *)puVar7[3];
        puVar7[3] = 0;
        if (puVar22 != (uint *)0x0) {
          uVar12 = 0;
          do {
            while( true ) {
              if (uVar6 == 0) {
                trap(7);
              }
              uVar17 = puVar22[7] % uVar6;
              puVar10 = puVar9 + uVar17;
              puVar18 = (uint *)*puVar22;
              if ((uint *)*puVar10 == (uint *)0x0) break;
              *puVar22 = *(uint *)*puVar10;
              *(uint **)*puVar10 = puVar22;
              uVar17 = uVar12;
LAB_0025e9a0:
              puVar22 = puVar18;
              uVar12 = uVar17;
              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;
            }
            *puVar22 = puVar7[3];
            puVar7[3] = (uint)puVar22;
            *puVar10 = (uint)puStack_d8;
            if (*puVar22 == 0) goto LAB_0025e9a0;
            puVar9[uVar12] = (uint)puVar22;
            puVar22 = puVar18;
            uVar12 = uVar17;
          } while (puVar18 != (uint *)0x0);
        }
LAB_0025ea00:
        if (puStack_d4 != (uint *)puVar7[1]) {
          (**(code **)(pcVar26 + 0x1d3d1c))();
        }
        if (uVar6 == 0) {
          trap(7);
        }
        puVar7[2] = uVar6;
        puVar7[1] = (uint)puVar9;
        puVar8[7] = (uint)unaff_s5;
        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;
        puVar10 = (uint *)*puVar22;
        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *puVar8 = *puVar10;
        *(uint **)*puVar22 = puVar8;
      }
      puVar7[4] = puVar7[4] + 1;
    }
  } while( true );
}


lui gp,0x1e
addiu gp,gp,-0x3fd8
addu gp,gp,t9
addiu sp,sp,-0x20
lui v0,0x4000
sw gp,0x10(sp)
sltu v0,a0,v0
sw ra,0x1c(sp)
beq v0,zero,0x0025e208
_sw s0,0x18(sp)
lw t9,-0x7e94(gp)
sll s0,a0,0x2
jalr t9
_or a0,s0,zero
or a1,zero,zero
lw gp,0x10(sp)
or a2,s0,zero
lw t9,-0x3980(gp)
jalr t9
_or a0,v0,zero
lw ra,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw t9,-0x7dcc(gp)
jalr t9
_nop
(translation_unit "int * FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}\n\n" (function_definition "int * FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)" * (function_declarator "FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)" identifier (parameter_list "(int *param_1,Workqueue *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Workqueue *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "Task *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "Workqueue *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "uint *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint uStack_f0;" type_identifier identifier ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "uint uStack_e4;" type_identifier identifier ;) (declaration "char acStack_e0 [4];" primitive_type (array_declarator "acStack_e0 [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_dc;" type_identifier identifier ;) (declaration "uint *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "uint *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "code *pcStack_d0;" type_identifier (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "undefined1 *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "undefined1 **ppuStack_c0;" type_identifier (pointer_declarator "**ppuStack_c0" * (pointer_declarator "*ppuStack_c0" * identifier)) ;) (declaration "uint *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "Workqueue *pWStack_b8;" type_identifier (pointer_declarator "*pWStack_b8" * identifier) ;) (declaration "int *piStack_b4;" primitive_type (pointer_declarator "*piStack_b4" * identifier) ;) (declaration "uint *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "undefined1 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined1 auStack_80 [20];" type_identifier (array_declarator "auStack_80 [20]" identifier [ number_literal ]) ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "uint uStack_68;" type_identifier identifier ;) (declaration "int *piStack_64;" primitive_type (pointer_declarator "*piStack_64" * identifier) ;) (declaration "int *piStack_60;" primitive_type (pointer_declarator "*piStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "undefined *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (if_statement "if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }" if (parenthesized_expression "(param_1 < (int *)0x40000000)" ( (binary_expression "param_1 < (int *)0x40000000" identifier < (cast_expression "(int *)0x40000000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);" (assignment_expression "uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)((int)param_1 << 2)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)param_1 << 2)" ( (binary_expression "(int)param_1 << 2" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" identifier = (cast_expression "(int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_00436850)" ( (pointer_expression "*(code *)PTR_memset_00436850" * (cast_expression "(code *)PTR_memset_00436850" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,0,(int)param_1 << 2)" ( identifier , number_literal , (binary_expression "(int)param_1 << 2" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "puVar25 = PTR___throw_bad_alloc_00432404;" (assignment_expression "puVar25 = PTR___throw_bad_alloc_00432404" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_bad_alloc_00432404)();" (call_expression "(*(code *)PTR___throw_bad_alloc_00432404)()" (parenthesized_expression "(*(code *)PTR___throw_bad_alloc_00432404)" ( (pointer_expression "*(code *)PTR___throw_bad_alloc_00432404" * (cast_expression "(code *)PTR___throw_bad_alloc_00432404" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar27 = puVar25 + 0x1dbfbc;" (assignment_expression "puVar27 = puVar25 + 0x1dbfbc" identifier = (binary_expression "puVar25 + 0x1dbfbc" identifier + number_literal)) ;) (expression_statement "puVar24 = *(uint **)(puVar25 + 0x1d5104);" (assignment_expression "puVar24 = *(uint **)(puVar25 + 0x1d5104)" identifier = (pointer_expression "*(uint **)(puVar25 + 0x1d5104)" * (cast_expression "(uint **)(puVar25 + 0x1d5104)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1d5104)" ( (binary_expression "puVar25 + 0x1d5104" identifier + number_literal) ))))) ;) (expression_statement "puStack_48 = puVar27;" (assignment_expression "puStack_48 = puVar27" identifier = identifier) ;) (if_statement "if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" if (parenthesized_expression "(puVar24[-0xa0c] == 0)" ( (binary_expression "puVar24[-0xa0c] == 0" (subscript_expression "puVar24[-0xa0c]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }" { (expression_statement "unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);" (assignment_expression "unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20)" identifier = (call_expression "(**(code **)(puVar25 + 0x1d4128))(0x20)" (parenthesized_expression "(**(code **)(puVar25 + 0x1d4128))" ( (pointer_expression "**(code **)(puVar25 + 0x1d4128)" * (pointer_expression "*(code **)(puVar25 + 0x1d4128)" * (cast_expression "(code **)(puVar25 + 0x1d4128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1d4128)" ( (binary_expression "puVar25 + 0x1d4128" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "(**(code **)(puStack_48 + -0x61a0))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x61a0))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x61a0))" ( (pointer_expression "**(code **)(puStack_48 + -0x61a0)" * (pointer_expression "*(code **)(puStack_48 + -0x61a0)" * (cast_expression "(code **)(puStack_48 + -0x61a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x61a0)" ( (binary_expression "puStack_48 + -0x61a0" identifier + number_literal) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "piVar19 = (int *)*param_3;" (assignment_expression "piVar19 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "unaff_s3 = param_1 + 1;" (assignment_expression "unaff_s3 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)param_3[1];" (assignment_expression "piVar3 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "cVar1 = *(char *)(param_1 + 1);" (assignment_expression "cVar1 = *(char *)(param_1 + 1)" identifier = (pointer_expression "*(char *)(param_1 + 1)" * (cast_expression "(char *)(param_1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(puStack_48 + -0x7e1c);" (assignment_expression "iVar15 = *(int *)(puStack_48 + -0x7e1c)" identifier = (pointer_expression "*(int *)(puStack_48 + -0x7e1c)" * (cast_expression "(int *)(puStack_48 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_48 + -0x7e1c)" ( (binary_expression "puStack_48 + -0x7e1c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(uint *)(unaff_s1 + 4)" * (cast_expression "(uint *)(unaff_s1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 4)" ( (binary_expression "unaff_s1 + 4" identifier + number_literal) )))) = (binary_expression "unaff_s1 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x10)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x10)" ( (binary_expression "unaff_s1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)(iVar15 + -0x636c);" (assignment_expression "uVar2 = *(undefined4 *)(iVar15 + -0x636c)" identifier = (pointer_expression "*(undefined4 *)(iVar15 + -0x636c)" * (cast_expression "(undefined4 *)(iVar15 + -0x636c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x636c)" ( (binary_expression "iVar15 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 8) = 1;" (assignment_expression "*(undefined4 *)(unaff_s1 + 8) = 1" (pointer_expression "*(undefined4 *)(unaff_s1 + 8)" * (cast_expression "(undefined4 *)(unaff_s1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 8)" ( (binary_expression "unaff_s1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x1c)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x1c)" ( (binary_expression "unaff_s1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0xc)" * (cast_expression "(undefined4 *)(unaff_s1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0xc)" ( (binary_expression "unaff_s1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x18)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x18)" ( (binary_expression "unaff_s1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar24[-0xa0c] = unaff_s1;" (assignment_expression "puVar24[-0xa0c] = unaff_s1" (subscript_expression "puVar24[-0xa0c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_1 = (int)param_3;" (assignment_expression "*param_1 = (int)param_3" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x14) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x14)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x14)" ( (binary_expression "unaff_s1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s2 = param_3;" (assignment_expression "unaff_s2 = param_3" identifier = identifier) ;) (expression_statement "unaff_s4 = param_2;" (assignment_expression "unaff_s4 = param_2" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (expression_statement "puVar27 = puStack_48;" (assignment_expression "puVar27 = puStack_48" identifier = identifier) ;) (if_statement "if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }" { (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);" (assignment_expression "piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" identifier = (cast_expression "(int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" ( (binary_expression "param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "((int)piVar3 - (int)piVar19 >> 2) * -0x49249249" (parenthesized_expression "((int)piVar3 - (int)piVar19 >> 2)" ( (binary_expression "(int)piVar3 - (int)piVar19 >> 2" (binary_expression "(int)piVar3 - (int)piVar19" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "param_1[2] = (int)piVar4;" (assignment_expression "param_1[2] = (int)piVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }" if (parenthesized_expression "(piVar19 != piVar3)" ( (binary_expression "piVar19 != piVar3" identifier != identifier) )) (compound_statement "{\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }" { (expression_statement "iVar15 = *(int *)(puStack_48 + -0x7fd8);" (assignment_expression "iVar15 = *(int *)(puStack_48 + -0x7fd8)" identifier = (pointer_expression "*(int *)(puStack_48 + -0x7fd8)" * (cast_expression "(int *)(puStack_48 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_48 + -0x7fd8)" ( (binary_expression "puStack_48 + -0x7fd8" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);" do (compound_statement "{\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        }" { (expression_statement "iVar20 = *piVar19;" (assignment_expression "iVar20 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar19 = piVar19 + 7;" (assignment_expression "piVar19 = piVar19 + 7" identifier = (binary_expression "piVar19 + 7" identifier + number_literal)) ;) (expression_statement "pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);" (assignment_expression "pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" identifier = (cast_expression "(Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_48 + -0x7e94))(0x2c)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e94))" ( (pointer_expression "**(code **)(puStack_48 + -0x7e94)" * (pointer_expression "*(code **)(puStack_48 + -0x7e94)" * (cast_expression "(code **)(puStack_48 + -0x7e94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7e94)" ( (binary_expression "puStack_48 + -0x7e94" identifier + number_literal) ))))) )) (argument_list "(0x2c)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" * (cast_expression "(undefined4 *)(pTVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(Task **)(pTVar5 + 8) = pTVar5 + 0x10;" (assignment_expression "*(Task **)(pTVar5 + 8) = pTVar5 + 0x10" (pointer_expression "*(Task **)(pTVar5 + 8)" * (cast_expression "(Task **)(pTVar5 + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar5 + 8)" ( (binary_expression "pTVar5 + 8" identifier + number_literal) )))) = (binary_expression "pTVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pTVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 0xc)" * (cast_expression "(undefined4 *)(pTVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 0xc)" ( (binary_expression "pTVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pTVar5[0x10] = (Task)0x0;" (assignment_expression "pTVar5[0x10] = (Task)0x0" (subscript_expression "pTVar5[0x10]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "pTVar5[0x20] = (Task)0x0;" (assignment_expression "pTVar5[0x20] = (Task)0x0" (subscript_expression "pTVar5[0x20]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "*(int *)pTVar5 = iVar15 + -0x6d48;" (assignment_expression "*(int *)pTVar5 = iVar15 + -0x6d48" (pointer_expression "*(int *)pTVar5" * (cast_expression "(int *)pTVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar15 + -0x6d48" identifier + number_literal)) ;) (expression_statement "*(int *)(pTVar5 + 0x24) = iVar20;" (assignment_expression "*(int *)(pTVar5 + 0x24) = iVar20" (pointer_expression "*(int *)(pTVar5 + 0x24)" * (cast_expression "(int *)(pTVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 0x24)" ( (binary_expression "pTVar5 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(pTVar5 + 0x28) = unaff_s3;" (assignment_expression "*(int **)(pTVar5 + 0x28) = unaff_s3" (pointer_expression "*(int **)(pTVar5 + 0x28)" * (cast_expression "(int **)(pTVar5 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar5 + 0x28)" ( (binary_expression "pTVar5 + 0x28" identifier + number_literal) )))) = identifier) ;) (labeled_statement "gold::Workqueue::queue(param_2,pTVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "Workqueue::queue(param_2,pTVar5);" statement_identifier : (ERROR ":" :) (expression_statement "queue(param_2,pTVar5);" (call_expression "queue(param_2,pTVar5)" identifier (argument_list "(param_2,pTVar5)" ( identifier , identifier ))) ;))) (expression_statement "piVar4 = (int *)param_3[1];" (assignment_expression "piVar4 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar4 != piVar19)" ( (binary_expression "piVar4 != piVar19" identifier != identifier) )) ;) })) (return_statement "return piVar4;" return identifier ;) })) }) (else_clause "else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" else (compound_statement "{\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" { (expression_statement "(**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);" (call_expression "(**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8)" (parenthesized_expression "(**(code **)(puVar25 + 0x1d41b0))" ( (pointer_expression "**(code **)(puVar25 + 0x1d41b0)" * (pointer_expression "*(code **)(puVar25 + 0x1d41b0)" * (cast_expression "(code **)(puVar25 + 0x1d41b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1d41b0)" ( (binary_expression "puVar25 + 0x1d41b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8)" ( (binary_expression "*(int *)(puVar25 + 0x1d4058) + 0x12f0" (pointer_expression "*(int *)(puVar25 + 0x1d4058)" * (cast_expression "(int *)(puVar25 + 0x1d4058)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1d4058)" ( (binary_expression "puVar25 + 0x1d4058" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar25 + 0x1d4058) + 0x13a8" (pointer_expression "*(int *)(puVar25 + 0x1d4058)" * (cast_expression "(int *)(puVar25 + 0x1d4058)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1d4058)" ( (binary_expression "puVar25 + 0x1d4058" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);" (assignment_expression "piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" identifier = (cast_expression "(int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" ( (binary_expression "*(int *)(puVar27 + -0x7fc4) + 0x48a0" (pointer_expression "*(int *)(puVar27 + -0x7fc4)" * (cast_expression "(int *)(puVar27 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x7fc4)" ( (binary_expression "puVar27 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);" (call_expression "(**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398)" (parenthesized_expression "(**(code **)(puVar27 + -0x7e0c))" ( (pointer_expression "**(code **)(puVar27 + -0x7e0c)" * (pointer_expression "*(code **)(puVar27 + -0x7e0c)" * (cast_expression "(code **)(puVar27 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x7e0c)" ( (binary_expression "puVar27 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398)" ( identifier , number_literal , (binary_expression "*(int *)(puVar27 + -0x7f64) + 0x1398" (pointer_expression "*(int *)(puVar27 + -0x7f64)" * (cast_expression "(int *)(puVar27 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x7f64)" ( (binary_expression "puVar27 + -0x7f64" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar15 = 0x20;" (assignment_expression "iVar15 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_48 + -0x7e10))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x7e10))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e10))" ( (pointer_expression "**(code **)(puStack_48 + -0x7e10)" * (pointer_expression "*(code **)(puStack_48 + -0x7e10)" * (cast_expression "(code **)(puStack_48 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7e10)" ( (binary_expression "puStack_48 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "pcVar26 = *(code **)(puStack_48 + -0x7f78);" (assignment_expression "pcVar26 = *(code **)(puStack_48 + -0x7f78)" identifier = (pointer_expression "*(code **)(puStack_48 + -0x7f78)" * (cast_expression "(code **)(puStack_48 + -0x7f78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7f78)" ( (binary_expression "puStack_48 + -0x7f78" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = FUN_0025e3dc;" (assignment_expression "pcVar28 = FUN_0025e3dc" identifier = identifier) ;) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_88 = auStack_80;" (assignment_expression "puStack_88 = auStack_80" identifier = identifier) ;) (expression_statement "piStack_6c = piVar19;" (assignment_expression "piStack_6c = piVar19" identifier = identifier) ;) (expression_statement "uStack_68 = unaff_s1;" (assignment_expression "uStack_68 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_64 = unaff_s2;" (assignment_expression "piStack_64 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_60 = unaff_s3;" (assignment_expression "piStack_60 = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar28;" (assignment_expression "pcStack_5c = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d40ac))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d40ac)" * (pointer_expression "*(code **)(pcVar26 + 0x1d40ac)" * (cast_expression "(code **)(pcVar26 + 0x1d40ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d40ac)" ( (binary_expression "pcVar26 + 0x1d40ac" identifier + number_literal) ))))) )) (argument_list "(&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0)" ( (pointer_expression "&puStack_88" & identifier) , (binary_expression "*(int *)(pcVar26 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(pcVar26 + 0x1d3e90)" * (cast_expression "(int *)(pcVar26 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3e90)" ( (binary_expression "pcVar26 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar26 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(pcVar26 + 0x1d3e90)" * (cast_expression "(int *)(pcVar26 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3e90)" ( (binary_expression "pcVar26 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar22 = *(uint **)(iVar15 + 0x24);" (assignment_expression "puVar22 = *(uint **)(iVar15 + 0x24)" identifier = (pointer_expression "*(uint **)(iVar15 + 0x24)" * (cast_expression "(uint **)(iVar15 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x24)" ( (binary_expression "iVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);" (assignment_expression "uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d83a0))(puVar22)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d83a0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d83a0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d83a0)" * (cast_expression "(code **)(pcVar26 + 0x1d83a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d83a0)" ( (binary_expression "pcVar26 + 0x1d83a0" identifier + number_literal) ))))) )) (argument_list "(puVar22)" ( identifier )))) ;) (if_statement "if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }" if (parenthesized_expression "(uVar6 <= 0x7fffffffU - iStack_84)" ( (binary_expression "uVar6 <= 0x7fffffffU - iStack_84" identifier <= (binary_expression "0x7fffffffU - iStack_84" number_literal - identifier)) )) (compound_statement "{\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4874))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4874)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4874)" * (cast_expression "(code **)(pcVar26 + 0x1d4874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4874)" ( (binary_expression "pcVar26 + 0x1d4874" identifier + number_literal) ))))) )) (argument_list "(&puStack_88,puVar22,uVar6)" ( (pointer_expression "&puStack_88" & identifier) , identifier , identifier ))))) ;) (expression_statement "piVar4 = piVar19 + 2;" (assignment_expression "piVar4 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (if_statement "if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" if (parenthesized_expression "((int *)*piVar19 == piVar4)" ( (binary_expression "(int *)*piVar19 == piVar4" (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier)) == identifier) )) (compound_statement "{\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }" { (expression_statement "iVar16 = piVar19[3];" (assignment_expression "iVar16 = piVar19[3]" identifier = (subscript_expression "piVar19[3]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = piVar19[4];" (assignment_expression "iVar20 = piVar19[4]" identifier = (subscript_expression "piVar19[4]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar19[5];" (assignment_expression "iVar15 = piVar19[5]" identifier = (subscript_expression "piVar19[5]" identifier [ number_literal ])) ;) (expression_statement "piVar3[2] = *piVar4;" (assignment_expression "piVar3[2] = *piVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar3[3] = iVar16;" (assignment_expression "piVar3[3] = iVar16" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[4] = iVar20;" (assignment_expression "piVar3[4] = iVar20" (subscript_expression "piVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[5] = iVar15;" (assignment_expression "piVar3[5] = iVar15" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" else (compound_statement "{\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" { (expression_statement "*piVar3 = *piVar19;" (assignment_expression "*piVar3 = *piVar19" (pointer_expression "*piVar3" * identifier) = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar3[2] = piVar19[2];" (assignment_expression "piVar3[2] = piVar19[2]" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (subscript_expression "piVar19[2]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar3[1] = piVar19[1];" (assignment_expression "piVar3[1] = piVar19[1]" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar19 = (int)piVar4;" (assignment_expression "*piVar19 = (int)piVar4" (pointer_expression "*piVar19" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar19 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar19 + 2)" * (cast_expression "(undefined1 *)(piVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 2)" ( (binary_expression "piVar19 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3eb0))();" (call_expression "(**(code **)(pcVar26 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eb0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3eb0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3eb0)" * (cast_expression "(code **)(pcVar26 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3eb0)" ( (binary_expression "pcVar26 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240" identifier = (binary_expression "*(int *)(pcVar26 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(pcVar26 + 0x1d3fd8)" * (cast_expression "(int *)(pcVar26 + 0x1d3fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3fd8)" ( (binary_expression "pcVar26 + 0x1d3fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d40a4))();" (call_expression "(**(code **)(pcVar26 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d40a4))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d40a4)" * (pointer_expression "*(code **)(pcVar26 + 0x1d40a4)" * (cast_expression "(code **)(pcVar26 + 0x1d40a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d40a4)" ( (binary_expression "pcVar26 + 0x1d40a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);" (call_expression "(**(code **)(pcVar26 + 0x1d3eb0))(puStack_88)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eb0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3eb0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3eb0)" * (cast_expression "(code **)(pcVar26 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3eb0)" ( (binary_expression "pcVar26 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) })) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x1d3e7c)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d3e7c)" * (cast_expression "(code **)(pcVar26 + 0x1d3e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3e7c)" ( (binary_expression "pcVar26 + 0x1d3e7c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" * (cast_expression "(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" ( (binary_expression "*(int *)(pcVar26 + 0x1d4da8) + -0x2830" (pointer_expression "*(int *)(pcVar26 + 0x1d4da8)" * (cast_expression "(int *)(pcVar26 + 0x1d4da8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d4da8)" ( (binary_expression "pcVar26 + 0x1d4da8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(iVar20 + 0x24);" (assignment_expression "uVar23 = *(uint *)(iVar20 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x24)" * (cast_expression "(uint *)(iVar20 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iStack_c8 = iVar15;" (assignment_expression "iStack_c8 = iVar15" identifier = identifier) ;) (expression_statement "puStack_c4 = auStack_80;" (assignment_expression "puStack_c4 = auStack_80" identifier = identifier) ;) (expression_statement "ppuStack_c0 = &puStack_88;" (assignment_expression "ppuStack_c0 = &puStack_88" identifier = (pointer_expression "&puStack_88" & identifier)) ;) (expression_statement "puStack_bc = puVar22;" (assignment_expression "puStack_bc = puVar22" identifier = identifier) ;) (expression_statement "pWStack_b8 = unaff_s4;" (assignment_expression "pWStack_b8 = unaff_s4" identifier = identifier) ;) (expression_statement "piStack_b4 = unaff_s5;" (assignment_expression "piStack_b4 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_b0 = puVar24;" (assignment_expression "puStack_b0 = puVar24" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);" (call_expression "(**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21)" (parenthesized_expression "(**(code **)(*(int *)*puVar21 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar21 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar21 + 8)" * (cast_expression "(code **)(*(int *)*puVar21 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar21 + 8)" ( (binary_expression "*(int *)*puVar21 + 8" (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar21)" ( (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)) ))) ;) (expression_statement "uVar6 = puVar21[2];" (assignment_expression "uVar6 = puVar21[2]" identifier = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);" (assignment_expression "piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" identifier = (pointer_expression "*(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" * (cast_expression "(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21[1] + (uVar23 % uVar6) * 4)" ( (binary_expression "puVar21[1] + (uVar23 % uVar6) * 4" (subscript_expression "puVar21[1]" identifier [ number_literal ]) + (binary_expression "(uVar23 % uVar6) * 4" (parenthesized_expression "(uVar23 % uVar6)" ( (binary_expression "uVar23 % uVar6" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }" { (expression_statement "uVar12 = ((int *)*piVar3)[1];" (assignment_expression "uVar12 = ((int *)*piVar3)[1]" identifier = (subscript_expression "((int *)*piVar3)[1]" (parenthesized_expression "((int *)*piVar3)" ( (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar19 = (int *)*piVar3;" (assignment_expression "piVar19 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);" do (compound_statement "{\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    }" { (expression_statement "piVar4 = piVar19;" (assignment_expression "piVar4 = piVar19" identifier = identifier) ;) (if_statement "if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }" if (parenthesized_expression "(uVar23 == uVar12)" ( (binary_expression "uVar23 == uVar12" identifier == identifier) )) (compound_statement "{\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }" { (expression_statement "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);" (assignment_expression "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar21 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar21 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar21 + 0xc)" ( (binary_expression "*(int *)*puVar21 + 0xc" (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }" if (parenthesized_expression "((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0))" ( (binary_expression "(*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)" (parenthesized_expression "(*piVar3 != 0)" ( (binary_expression "*piVar3 != 0" (pointer_expression "*piVar3" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar3 + 8) != 0)" ( (binary_expression "*(int *)(*piVar3 + 8) != 0" (pointer_expression "*(int *)(*piVar3 + 8)" * (cast_expression "(int *)(*piVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + 8)" ( (binary_expression "*piVar3 + 8" (pointer_expression "*piVar3" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }" { (expression_statement "piVar3 = (int *)(*pcVar28)();" (assignment_expression "piVar3 = (int *)(*pcVar28)()" identifier = (cast_expression "(int *)(*pcVar28)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (goto_statement "goto LAB_0025e698;" goto statement_identifier ;) })) (expression_statement "piVar19 = (int *)*piVar4;" (assignment_expression "piVar19 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar19 == (int *)0x0) break;" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = piVar19[1];" (assignment_expression "uVar12 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar3 = piVar4;" (assignment_expression "piVar3 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 % uVar6 == uVar12 % uVar6)" ( (binary_expression "uVar23 % uVar6 == uVar12 % uVar6" (binary_expression "uVar23 % uVar6" identifier % identifier) == (binary_expression "uVar12 % uVar6" identifier % identifier)) )) ;) })) (expression_statement "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);" (assignment_expression "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar21 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar21 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar21 + 0xc)" ( (binary_expression "*(int *)*puVar21 + 0xc" (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0025e698:\n  (*pcVar28)();" statement_identifier : (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);" (assignment_expression "puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" identifier = (cast_expression "(uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "puStack_d4 = puVar7 + 7;" (assignment_expression "puStack_d4 = puVar7 + 7" identifier = (binary_expression "puVar7 + 7" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar23;" (assignment_expression "*puVar7 = uVar23" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar15 = *(int *)(pcVar26 + 0x1d3e44);" (assignment_expression "iVar15 = *(int *)(pcVar26 + 0x1d3e44)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x1d3e44)" * (cast_expression "(int *)(pcVar26 + 0x1d3e44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3e44)" ( (binary_expression "pcVar26 + 0x1d3e44" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d8260);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d8260)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d8260)" * (cast_expression "(code **)(pcVar26 + 0x1d8260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8260)" ( (binary_expression "pcVar26 + 0x1d8260" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = (uint)puStack_d4;" (assignment_expression "puVar7[1] = (uint)puStack_d4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = *(uint *)(iVar15 + -0x636c);" (assignment_expression "uVar6 = *(uint *)(iVar15 + -0x636c)" identifier = (pointer_expression "*(uint *)(iVar15 + -0x636c)" * (cast_expression "(uint *)(iVar15 + -0x636c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x636c)" ( (binary_expression "iVar15 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (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[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = uVar6;" (assignment_expression "puVar7[5] = uVar6" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = (*pcVar28)(uVar23);" (assignment_expression "iVar15 = (*pcVar28)(uVar23)" identifier = (call_expression "(*pcVar28)(uVar23)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(uVar23)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }" { (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))()" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d8394))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8394)" * (cast_expression "(code **)(pcVar26 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8394)" ( (binary_expression "pcVar26 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar3 == 2) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar3 == 2)" ( (binary_expression "*piVar3 == 2" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (if_statement "if (*piVar3 == 0x14) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar3 == 0x14)" ( (binary_expression "*piVar3 == 0x14" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (expression_statement "puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" identifier = (cast_expression "(uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d82a8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d82a8)" * (pointer_expression "*(code **)(pcVar26 + 0x1d82a8)" * (cast_expression "(code **)(pcVar26 + 0x1d82a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d82a8)" ( (binary_expression "pcVar26 + 0x1d82a8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" ( (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1318" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);" (assignment_expression "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*piVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8374)" * (cast_expression "(code **)(pcVar26 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8374)" ( (binary_expression "pcVar26 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*piVar3)" ( (pointer_expression "*piVar3" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);" (call_expression "(**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4814))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4814)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4814)" * (cast_expression "(code **)(pcVar26 + 0x1d4814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4814)" ( (binary_expression "pcVar26 + 0x1d4814" identifier + number_literal) ))))) )) (argument_list "(puVar22,uVar6,uVar2)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (goto_statement "goto LAB_0025e810;" goto statement_identifier ;) })) (expression_statement "puStack_d8 = puVar7 + 3;" (assignment_expression "puStack_d8 = puVar7 + 3" identifier = (binary_expression "puVar7 + 3" identifier + number_literal)) ;) (expression_statement "puVar24 = &uStack_f0;" (assignment_expression "puVar24 = &uStack_f0" identifier = (pointer_expression "&uStack_f0" & identifier)) ;) (expression_statement "pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" identifier = (cast_expression "(code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" ( (binary_expression "*(int *)(pcVar26 + 0x1d71a4) + -0x1e58" (pointer_expression "*(int *)(pcVar26 + 0x1d71a4)" * (cast_expression "(int *)(pcVar26 + 0x1d71a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d71a4)" ( (binary_expression "pcVar26 + 0x1d71a4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" statement_identifier : (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d822c)" * (cast_expression "(code **)(pcVar26 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d822c)" ( (binary_expression "pcVar26 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;)) (if_statement "if (iVar20 == 0) goto LAB_0025e7f8;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025e7f8;" goto statement_identifier ;)) (do_statement "do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  }" { (expression_statement "iVar20 = iVar20 + 0x13;" (assignment_expression "iVar20 = iVar20 + 0x13" identifier = (binary_expression "iVar20 + 0x13" identifier + number_literal)) ;) (expression_statement "puStack_f8 = puVar24;" (assignment_expression "puStack_f8 = puVar24" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);" (assignment_expression "iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d820c))(iVar20)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d820c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d820c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d820c)" * (cast_expression "(code **)(pcVar26 + 0x1d820c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d820c)" ( (binary_expression "pcVar26 + 0x1d820c" identifier + number_literal) ))))) )) (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);" (call_expression "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3f18))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3f18)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3f18)" * (cast_expression "(code **)(pcVar26 + 0x1d3f18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3f18)" ( (binary_expression "pcVar26 + 0x1d3f18" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8,iVar20,iVar20 + iVar16,0)" ( (pointer_expression "&puStack_f8" & identifier) , identifier , (binary_expression "iVar20 + iVar16" identifier + identifier) , number_literal ))) ;) (expression_statement "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);" (assignment_expression "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4af0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4af0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4af0)" * (cast_expression "(code **)(pcVar26 + 0x1d4af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4af0)" ( (binary_expression "pcVar26 + 0x1d4af0" identifier + number_literal) ))))) )) (argument_list "(puStack_f8,uStack_f4,0xc70f6907)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar7[2] == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);" (assignment_expression "puVar22 = (uint *)((uint)unaff_s5 % puVar7[2])" identifier = (cast_expression "(uint *)((uint)unaff_s5 % puVar7[2])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s5 % puVar7[2])" ( (binary_expression "(uint)unaff_s5 % puVar7[2]" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % (subscript_expression "puVar7[2]" identifier [ number_literal ])) )))) ;) (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4f88))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4f88)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4f88)" * (cast_expression "(code **)(pcVar26 + 0x1d4f88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4f88)" ( (binary_expression "pcVar26 + 0x1d4f88" identifier + number_literal) ))))) )) (argument_list "(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" ( (binary_expression "puVar7 + 1" identifier + number_literal) , identifier , (pointer_expression "&puStack_f8" & identifier) , identifier ))))) ;) (if_statement "if (piVar3 == (int *)0x0) goto LAB_0025e8e0;" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025e8e0;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar3 == 0) goto LAB_0025e8e4;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e8e4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }" { (if_statement "if (puStack_f8 == puVar24) goto LAB_0025e720;" if (parenthesized_expression "(puStack_f8 == puVar24)" ( (binary_expression "puStack_f8 == puVar24" identifier == identifier) )) (goto_statement "goto LAB_0025e720;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d822c)" * (cast_expression "(code **)(pcVar26 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d822c)" ( (binary_expression "pcVar26 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) break;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);" statement_identifier : (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d81c8))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d81c8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d81c8)" * (pointer_expression "*(code **)(pcVar26 + 0x1d81c8)" * (cast_expression "(code **)(pcVar26 + 0x1d81c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d81c8)" ( (binary_expression "pcVar26 + 0x1d81c8" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;)) (if_statement "if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }" { (labeled_statement "LAB_0025e80c:\n        piVar3 = (int *)*puVar21;" statement_identifier : (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;)) }) (else_clause "else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" else (compound_statement "{\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" { (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8394)" * (cast_expression "(code **)(pcVar26 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8394)" ( (binary_expression "pcVar26 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);" (assignment_expression "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*puVar11)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8374)" * (cast_expression "(code **)(pcVar26 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8374)" ( (binary_expression "pcVar26 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);" (call_expression "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eec))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3eec)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3eec)" * (cast_expression "(code **)(pcVar26 + 0x1d3eec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3eec)" ( (binary_expression "pcVar26 + 0x1d3eec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2)" ( (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1338" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) }))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);" statement_identifier : (expression_statement "(**(code **)(*piVar3 + 8))(piVar3);" (call_expression "(**(code **)(*piVar3 + 8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 8))" ( (pointer_expression "**(code **)(*piVar3 + 8)" * (pointer_expression "*(code **)(*piVar3 + 8)" * (cast_expression "(code **)(*piVar3 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 8)" ( (binary_expression "*piVar3 + 8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;)) (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "uVar6 = puVar21[2];" (assignment_expression "uVar6 = puVar21[2]" identifier = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = puVar21[1];" (assignment_expression "iVar20 = puVar21[1]" identifier = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar3[2] = (int)puVar7;" (assignment_expression "piVar3[2] = (int)puVar7" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[1] = uVar23;" (assignment_expression "piVar3[1] = uVar23" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (uint *)((uVar23 % uVar6) * 4);" (assignment_expression "puVar7 = (uint *)((uVar23 % uVar6) * 4)" identifier = (cast_expression "(uint *)((uVar23 % uVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar23 % uVar6) * 4)" ( (binary_expression "(uVar23 % uVar6) * 4" (parenthesized_expression "(uVar23 % uVar6)" ( (binary_expression "uVar23 % uVar6" identifier % identifier) )) * number_literal) )))) ;) (expression_statement "piVar19 = *(int **)(iVar20 + (int)puVar7);" (assignment_expression "piVar19 = *(int **)(iVar20 + (int)puVar7)" identifier = (pointer_expression "*(int **)(iVar20 + (int)puVar7)" * (cast_expression "(int **)(iVar20 + (int)puVar7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + (int)puVar7)" ( (binary_expression "iVar20 + (int)puVar7" identifier + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }" { (labeled_statement "LAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);" statement_identifier : (expression_statement "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);" (call_expression "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d45c0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d45c0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d45c0)" * (cast_expression "(code **)(pcVar26 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d45c0)" ( (binary_expression "pcVar26 + 0x1d45c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1)" ( (pointer_expression "&puStack_f8" & identifier) , (binary_expression "puVar21 + 5" identifier + number_literal) , identifier , (subscript_expression "puVar21[4]" identifier [ number_literal ]) , number_literal ))) ;)) (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" identifier = identifier) ;) (if_statement "if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" if (parenthesized_expression "(puStack_f8._0_1_ == '\0')" ( (binary_expression "puStack_f8._0_1_ == '\0'" (field_expression "puStack_f8._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          puVar11 = (undefined4 *)puVar21[1];\n        }" { (expression_statement "puVar11 = (undefined4 *)puVar21[1];" (assignment_expression "puVar11 = (undefined4 *)puVar21[1]" identifier = (cast_expression "(undefined4 *)puVar21[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" else (compound_statement "{\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" { (if_statement "if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" if (parenthesized_expression "(uStack_f4 == 1)" ( (binary_expression "uStack_f4 == 1" identifier == number_literal) )) (compound_statement "{\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }" { (expression_statement "puVar11 = puVar21 + 7;" (assignment_expression "puVar11 = puVar21 + 7" identifier = (binary_expression "puVar21 + 7" identifier + number_literal)) ;) (expression_statement "puVar21[7] = 0;" (assignment_expression "puVar21[7] = 0" (subscript_expression "puVar21[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" else (compound_statement "{\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" { (expression_statement "puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);" (assignment_expression "puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4)" identifier = (cast_expression "(undefined4 *)FUN_0025e1a8(uStack_f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025e1a8(uStack_f4)" identifier (argument_list "(uStack_f4)" ( identifier ))))) ;) }))) (expression_statement "piVar19 = (int *)puVar21[3];" (assignment_expression "piVar19 = (int *)puVar21[3]" identifier = (cast_expression "(int *)puVar21[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar21[3] = 0;" (assignment_expression "puVar21[3] = 0" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }" if (parenthesized_expression "(piVar19 != (int *)0x0)" ( (binary_expression "piVar19 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);" do (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            }" { (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar17 = (uint)piVar19[1] % uVar6;" (assignment_expression "uVar17 = (uint)piVar19[1] % uVar6" identifier = (binary_expression "(uint)piVar19[1] % uVar6" (cast_expression "(uint)piVar19[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar19[1]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "puVar14 = puVar11 + uVar17;" (assignment_expression "puVar14 = puVar11 + uVar17" identifier = (binary_expression "puVar11 + uVar17" identifier + identifier)) ;) (expression_statement "piVar4 = (int *)*piVar19;" (assignment_expression "piVar4 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" if (parenthesized_expression "((int *)*puVar14 == (int *)0x0)" ( (binary_expression "(int *)*puVar14 == (int *)0x0" (cast_expression "(int *)*puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }" { (expression_statement "*piVar19 = puVar21[3];" (assignment_expression "*piVar19 = puVar21[3]" (pointer_expression "*piVar19" * identifier) = (subscript_expression "puVar21[3]" identifier [ number_literal ])) ;) (expression_statement "puVar21[3] = piVar19;" (assignment_expression "puVar21[3] = piVar19" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar14 = puVar21 + 3;" (assignment_expression "*puVar14 = puVar21 + 3" (pointer_expression "*puVar14" * identifier) = (binary_expression "puVar21 + 3" identifier + number_literal)) ;) (if_statement "if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }" if (parenthesized_expression "(*piVar19 != 0)" ( (binary_expression "*piVar19 != 0" (pointer_expression "*piVar19" * identifier) != number_literal) )) (compound_statement "{\n                  puVar11[uVar12] = piVar19;\n                }" { (expression_statement "puVar11[uVar12] = piVar19;" (assignment_expression "puVar11[uVar12] = piVar19" (subscript_expression "puVar11[uVar12]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" else (compound_statement "{\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" { (expression_statement "*piVar19 = *(int *)*puVar14;" (assignment_expression "*piVar19 = *(int *)*puVar14" (pointer_expression "*piVar19" * identifier) = (pointer_expression "*(int *)*puVar14" * (cast_expression "(int *)*puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)))) ;) (expression_statement "*(int **)*puVar14 = piVar19;" (assignment_expression "*(int **)*puVar14 = piVar19" (pointer_expression "*(int **)*puVar14" * (cast_expression "(int **)*puVar14" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) = identifier) ;) (expression_statement "uVar17 = uVar12;" (assignment_expression "uVar17 = uVar12" identifier = identifier) ;) }))) (expression_statement "piVar19 = piVar4;" (assignment_expression "piVar19 = piVar4" identifier = identifier) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" if (parenthesized_expression "((undefined4 *)puVar21[1] != puVar21 + 7)" ( (binary_expression "(undefined4 *)puVar21[1] != puVar21 + 7" (cast_expression "(undefined4 *)puVar21[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ])) != (binary_expression "puVar21 + 7" identifier + number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (uVar6 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar21[2] = uVar6;" (assignment_expression "puVar21[2] = uVar6" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[1] = puVar11;" (assignment_expression "puVar21[1] = puVar11" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (uint *)(uVar23 % uVar6 << 2);" (assignment_expression "puVar7 = (uint *)(uVar23 % uVar6 << 2)" identifier = (cast_expression "(uint *)(uVar23 % uVar6 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 % uVar6 << 2)" ( (binary_expression "uVar23 % uVar6 << 2" (binary_expression "uVar23 % uVar6" identifier % identifier) << number_literal) )))) ;) }))) (if_statement "if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" if (parenthesized_expression "(*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0)" ( (binary_expression "*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0" (pointer_expression "*(int **)((int)puVar11 + (int)puVar7)" * (cast_expression "(int **)((int)puVar11 + (int)puVar7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + (int)puVar7)" ( (binary_expression "(int)puVar11 + (int)puVar7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }" { (expression_statement "*piVar3 = puVar21[3];" (assignment_expression "*piVar3 = puVar21[3]" (pointer_expression "*piVar3" * identifier) = (subscript_expression "puVar21[3]" identifier [ number_literal ])) ;) (expression_statement "puVar21[3] = piVar3;" (assignment_expression "puVar21[3] = piVar3" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n            iVar15 = puVar21[1];\n          }" { (expression_statement "iVar15 = puVar21[1];" (assignment_expression "iVar15 = puVar21[1]" identifier = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" else (compound_statement "{\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" { (expression_statement "iVar15 = puVar21[1];" (assignment_expression "iVar15 = puVar21[1]" identifier = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar21[2] == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(puVar21[2] == 0)" ( (binary_expression "puVar21[2] == 0" (subscript_expression "puVar21[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              trap(7);\n            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;" (assignment_expression "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3" (pointer_expression "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" * (cast_expression "(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" ( (binary_expression "iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4" identifier + (binary_expression "(*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar3 + 4) % (uint)puVar21[2])" ( (binary_expression "*(uint *)(*piVar3 + 4) % (uint)puVar21[2]" (pointer_expression "*(uint *)(*piVar3 + 4)" * (cast_expression "(uint *)(*piVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + 4)" ( (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" * identifier) + number_literal) )))) % (cast_expression "(uint)puVar21[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) }))) (expression_statement "*(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;" (assignment_expression "*(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3" (pointer_expression "*(undefined4 **)(iVar15 + (int)puVar7)" * (cast_expression "(undefined4 **)(iVar15 + (int)puVar7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + (int)puVar7)" ( (binary_expression "iVar15 + (int)puVar7" identifier + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "puVar21 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" else (compound_statement "{\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" { (expression_statement "*piVar3 = **(int **)((int)puVar11 + (int)puVar7);" (assignment_expression "*piVar3 = **(int **)((int)puVar11 + (int)puVar7)" (pointer_expression "*piVar3" * identifier) = (pointer_expression "**(int **)((int)puVar11 + (int)puVar7)" * (pointer_expression "*(int **)((int)puVar11 + (int)puVar7)" * (cast_expression "(int **)((int)puVar11 + (int)puVar7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + (int)puVar7)" ( (binary_expression "(int)puVar11 + (int)puVar7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) (expression_statement "**(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;" (assignment_expression "**(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3" (pointer_expression "**(undefined4 **)(puVar21[1] + (int)puVar7)" * (pointer_expression "*(undefined4 **)(puVar21[1] + (int)puVar7)" * (cast_expression "(undefined4 **)(puVar21[1] + (int)puVar7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21[1] + (int)puVar7)" ( (binary_expression "puVar21[1] + (int)puVar7" (subscript_expression "puVar21[1]" identifier [ number_literal ]) + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) = identifier) ;) }))) (expression_statement "iVar15 = *(int *)*puVar21;" (assignment_expression "iVar15 = *(int *)*puVar21" identifier = (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)))) ;) (expression_statement "puVar21[4] = puVar21[4] + 1;" (assignment_expression "puVar21[4] = puVar21[4] + 1" (subscript_expression "puVar21[4]" identifier [ number_literal ]) = (binary_expression "puVar21[4] + 1" (subscript_expression "puVar21[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);" (assignment_expression "piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21)" identifier = (cast_expression "(int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar15 + 0xc))((int *)*puVar21)" (parenthesized_expression "(**(code **)(iVar15 + 0xc))" ( (pointer_expression "**(code **)(iVar15 + 0xc)" * (pointer_expression "*(code **)(iVar15 + 0xc)" * (cast_expression "(code **)(iVar15 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) ))))) )) (argument_list "((int *)*puVar21)" ( (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)) ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "uVar12 = ((int *)*piVar19)[1];" (assignment_expression "uVar12 = ((int *)*piVar19)[1]" identifier = (subscript_expression "((int *)*piVar19)[1]" (parenthesized_expression "((int *)*piVar19)" ( (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar4 = (int *)*piVar19;" (assignment_expression "piVar4 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (while_statement "while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }" while (parenthesized_expression "(piVar13 = piVar4, uVar23 != uVar12)" ( (comma_expression "piVar13 = piVar4, uVar23 != uVar12" (assignment_expression "piVar13 = piVar4" identifier = identifier) , (binary_expression "uVar23 != uVar12" identifier != identifier)) )) (compound_statement "{\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }" { (expression_statement "piVar4 = (int *)*piVar13;" (assignment_expression "piVar4 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (if_statement "if (piVar4 == (int *)0x0) goto LAB_0025eb6c;" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "uVar12 = piVar4[1];" (assignment_expression "uVar12 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar19 = piVar13;" (assignment_expression "piVar19 = piVar13" identifier = identifier) ;) (if_statement "if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;" if (parenthesized_expression "(uVar23 % uVar6 != uVar12 % uVar6)" ( (binary_expression "uVar23 % uVar6 != uVar12 % uVar6" (binary_expression "uVar23 % uVar6" identifier % identifier) != (binary_expression "uVar12 % uVar6" identifier % identifier)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) })) (if_statement "if (*piVar19 == 0) goto LAB_0025eb6c;" if (parenthesized_expression "(*piVar19 == 0)" ( (binary_expression "*piVar19 == 0" (pointer_expression "*piVar19" * identifier) == number_literal) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))(piVar3);" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))(piVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);" (call_expression "(**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3e54))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3e54)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3e54)" * (cast_expression "(code **)(pcVar26 + 0x1d3e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3e54)" ( (binary_expression "pcVar26 + 0x1d3e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394)" ( (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1394" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);" statement_identifier : (expression_statement "puVar8 = (uint *)(*pcVar28)(0x20);" (assignment_expression "puVar8 = (uint *)(*pcVar28)(0x20)" identifier = (cast_expression "(uint *)(*pcVar28)(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)(0x20)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0x20)" ( number_literal ))))) ;)) (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" identifier = identifier) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = (uint)(puVar8 + 3);" (assignment_expression "puVar8[1] = (uint)(puVar8 + 3)" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (call_expression "(uint)(puVar8 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar8 + 3)" ( (binary_expression "puVar8 + 3" identifier + number_literal) )))) ;) (if_statement "if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" if (parenthesized_expression "(puStack_f8 == puVar24)" ( (binary_expression "puStack_f8 == puVar24" identifier == identifier) )) (compound_statement "{\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }" { (expression_statement "puVar8[3] = uStack_f0;" (assignment_expression "puVar8[3] = uStack_f0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = uStack_ec;" (assignment_expression "puVar8[4] = uStack_ec" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uStack_e8;" (assignment_expression "puVar8[5] = uStack_e8" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uStack_e4;" (assignment_expression "puVar8[6] = uStack_e4" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" else (compound_statement "{\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" { (expression_statement "puVar8[1] = (uint)puStack_f8;" (assignment_expression "puVar8[1] = (uint)puStack_f8" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_f8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar8[3] = uStack_f0;" (assignment_expression "puVar8[3] = uStack_f0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uStack_cc = puVar7[6];" (assignment_expression "uStack_cc = puVar7[6]" identifier = (subscript_expression "puVar7[6]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar7[4];" (assignment_expression "uVar17 = puVar7[4]" identifier = (subscript_expression "puVar7[4]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar7[2];" (assignment_expression "uVar12 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d45c0);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d45c0)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d45c0)" * (cast_expression "(code **)(pcVar26 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d45c0)" ( (binary_expression "pcVar26 + 0x1d45c0" identifier + number_literal) ))))) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "puVar8[2] = uVar6;" (assignment_expression "puVar8[2] = uVar6" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_f0 = uStack_f0 & 0xffffff;" (assignment_expression "uStack_f0 = uStack_f0 & 0xffffff" identifier = (binary_expression "uStack_f0 & 0xffffff" identifier & number_literal)) ;) (expression_statement "puStack_f8 = puVar24;" (assignment_expression "puStack_f8 = puVar24" identifier = identifier) ;) (expression_statement "(*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);" (call_expression "(*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(acStack_e0,puVar7 + 5,uVar12,uVar17,1)" ( identifier , (binary_expression "puVar7 + 5" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = uStack_dc;" (assignment_expression "uVar6 = uStack_dc" identifier = identifier) ;) (if_statement "if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" if (parenthesized_expression "(acStack_e0[0] == '\0')" ( (binary_expression "acStack_e0[0] == '\0'" (subscript_expression "acStack_e0[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }" { (expression_statement "puVar9 = (uint *)puVar7[1];" (assignment_expression "puVar9 = (uint *)puVar7[1]" identifier = (cast_expression "(uint *)puVar7[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[7] = (uint)unaff_s5;" (assignment_expression "puVar8[7] = (uint)unaff_s5" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = puVar9 + (int)puVar22;" (assignment_expression "puVar22 = puVar9 + (int)puVar22" identifier = (binary_expression "puVar9 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar10 = (uint *)*puVar22;" (assignment_expression "puVar10 = (uint *)*puVar22" identifier = (cast_expression "(uint *)*puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ;) (if_statement "if (puVar10 != (uint *)0x0) goto LAB_0025ea48;" if (parenthesized_expression "(puVar10 != (uint *)0x0)" ( (binary_expression "puVar10 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea48;" goto statement_identifier ;)) (labeled_statement "LAB_0025ea84:\n        uVar6 = puVar7[3];" statement_identifier : (expression_statement "uVar6 = puVar7[3];" (assignment_expression "uVar6 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;)) (expression_statement "puVar7[3] = (uint)puVar8;" (assignment_expression "puVar7[3] = (uint)puVar8" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" * identifier) = identifier) ;) (if_statement "if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }" { (if_statement "if (puVar7[2] == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;" (assignment_expression "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8" (subscript_expression "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]]" identifier [ (binary_expression "*(uint *)(uVar6 + 0x1c) % puVar7[2]" (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) % (subscript_expression "puVar7[2]" identifier [ number_literal ])) ]) = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*puVar22 = (uint)puStack_d8;" (assignment_expression "*puVar22 = (uint)puStack_d8" (pointer_expression "*puVar22" * identifier) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" else (compound_statement "{\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" { (if_statement "if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" if (parenthesized_expression "(uStack_dc == 1)" ( (binary_expression "uStack_dc == 1" identifier == number_literal) )) (compound_statement "{\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }" { (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9 = puStack_d4;" (assignment_expression "puVar9 = puStack_d4" identifier = identifier) ;) }) (else_clause "else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" else (compound_statement "{\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" { (expression_statement "puVar9 = (uint *)(*pcStack_d0)(uStack_dc);" (assignment_expression "puVar9 = (uint *)(*pcStack_d0)(uStack_dc)" identifier = (cast_expression "(uint *)(*pcStack_d0)(uStack_dc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_d0)(uStack_dc)" (parenthesized_expression "(*pcStack_d0)" ( (pointer_expression "*pcStack_d0" * identifier) )) (argument_list "(uStack_dc)" ( identifier ))))) ;) }))) (expression_statement "puVar22 = (uint *)puVar7[3];" (assignment_expression "puVar22 = (uint *)puVar7[3]" identifier = (cast_expression "(uint *)puVar7[3]" ( (type_descriptor "uint *" type_identifier (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 (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }" if (parenthesized_expression "(puVar22 != (uint *)0x0)" ( (binary_expression "puVar22 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);" do (compound_statement "{\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          }" { (while_statement "while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }" { (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar17 = puVar22[7] % uVar6;" (assignment_expression "uVar17 = puVar22[7] % uVar6" identifier = (binary_expression "puVar22[7] % uVar6" (subscript_expression "puVar22[7]" identifier [ number_literal ]) % identifier)) ;) (expression_statement "puVar10 = puVar9 + uVar17;" (assignment_expression "puVar10 = puVar9 + uVar17" identifier = (binary_expression "puVar9 + uVar17" identifier + identifier)) ;) (expression_statement "puVar18 = (uint *)*puVar22;" (assignment_expression "puVar18 = (uint *)*puVar22" identifier = (cast_expression "(uint *)*puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ;) (if_statement "if ((uint *)*puVar10 == (uint *)0x0) break;" if (parenthesized_expression "((uint *)*puVar10 == (uint *)0x0)" ( (binary_expression "(uint *)*puVar10 == (uint *)0x0" (cast_expression "(uint *)*puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier)) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar22 = *(uint *)*puVar10;" (assignment_expression "*puVar22 = *(uint *)*puVar10" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(uint *)*puVar10" * (cast_expression "(uint *)*puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier)))) ;) (expression_statement "*(uint **)*puVar10 = puVar22;" (assignment_expression "*(uint **)*puVar10 = puVar22" (pointer_expression "*(uint **)*puVar10" * (cast_expression "(uint **)*puVar10" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar10" * identifier))) = identifier) ;) (expression_statement "uVar17 = uVar12;" (assignment_expression "uVar17 = uVar12" identifier = identifier) ;) (labeled_statement "LAB_0025e9a0:\n              puVar22 = puVar18;" statement_identifier : (expression_statement "puVar22 = puVar18;" (assignment_expression "puVar22 = puVar18" identifier = identifier) ;)) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if (puVar18 == (uint *)0x0) goto LAB_0025ea00;" if (parenthesized_expression "(puVar18 == (uint *)0x0)" ( (binary_expression "puVar18 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea00;" goto statement_identifier ;)) })) (expression_statement "*puVar22 = puVar7[3];" (assignment_expression "*puVar22 = puVar7[3]" (pointer_expression "*puVar22" * identifier) = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = (uint)puVar22;" (assignment_expression "puVar7[3] = (uint)puVar22" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar10 = (uint)puStack_d8;" (assignment_expression "*puVar10 = (uint)puStack_d8" (pointer_expression "*puVar10" * identifier) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*puVar22 == 0) goto LAB_0025e9a0;" if (parenthesized_expression "(*puVar22 == 0)" ( (binary_expression "*puVar22 == 0" (pointer_expression "*puVar22" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e9a0;" goto statement_identifier ;)) (expression_statement "puVar9[uVar12] = (uint)puVar22;" (assignment_expression "puVar9[uVar12] = (uint)puVar22" (subscript_expression "puVar9[uVar12]" identifier [ identifier ]) = (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = puVar18;" (assignment_expression "puVar22 = puVar18" identifier = identifier) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(puVar18 != (uint *)0x0)" ( (binary_expression "puVar18 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" statement_identifier : (if_statement "if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" if (parenthesized_expression "(puStack_d4 != (uint *)puVar7[1])" ( (binary_expression "puStack_d4 != (uint *)puVar7[1]" identifier != (cast_expression "(uint *)puVar7[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) )) (compound_statement "{\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar7[2] = uVar6;" (assignment_expression "puVar7[2] = uVar6" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[1] = (uint)puVar9;" (assignment_expression "puVar7[1] = (uint)puVar9" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar8[7] = (uint)unaff_s5;" (assignment_expression "puVar8[7] = (uint)unaff_s5" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = puVar9 + (uint)unaff_s5 % uVar6;" (assignment_expression "puVar22 = puVar9 + (uint)unaff_s5 % uVar6" identifier = (binary_expression "puVar9 + (uint)unaff_s5 % uVar6" identifier + (binary_expression "(uint)unaff_s5 % uVar6" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "puVar10 = (uint *)*puVar22;" (assignment_expression "puVar10 = (uint *)*puVar22" identifier = (cast_expression "(uint *)*puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ;) (if_statement "if (puVar10 == (uint *)0x0) goto LAB_0025ea84;" if (parenthesized_expression "(puVar10 == (uint *)0x0)" ( (binary_expression "puVar10 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea84;" goto statement_identifier ;)) (labeled_statement "LAB_0025ea48:\n        *puVar8 = *puVar10;" statement_identifier : (expression_statement "*puVar8 = *puVar10;" (assignment_expression "*puVar8 = *puVar10" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar10" * identifier)) ;)) (expression_statement "*(uint **)*puVar22 = puVar8;" (assignment_expression "*(uint **)*puVar22 = puVar8" (pointer_expression "*(uint **)*puVar22" * (cast_expression "(uint **)*puVar22" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar22" * 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)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* DWARF original prototype: __bucket_type *\n   _M_allocate_buckets(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n   * this, size_t __n) */\n\n__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  _Var1;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Var2;\n  undefined4 uVar3;\n  __bucket_type *pp_Var4;\n  __bucket_type *pp_Var5;\n  Task *t;\n  uint uVar6;\n  undefined4 *puVar7;\n  uint *puVar8;\n  int iVar9;\n  int iVar10;\n  uint *puVar11;\n  uint *puVar12;\n  uint *puVar13;\n  undefined4 *puVar14;\n  uint uVar15;\n  int *piVar16;\n  _Hash_node_base *p_Var17;\n  int *piVar18;\n  __bucket_type p_Var19;\n  int *piVar20;\n  int *piVar21;\n  undefined4 *in_a2;\n  int iVar22;\n  __bucket_type p_Var23;\n  _Hash_node_base *p_Var24;\n  __bucket_type p_Var25;\n  uint *puVar26;\n  __bucket_type *pp_Var27;\n  uint unaff_s1;\n  __bucket_type p_Var28;\n  Task *unaff_s3;\n  uint *puVar29;\n  Workqueue *unaff_s4;\n  uint uVar30;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *unaff_s5;\n  uint *puVar31;\n  undefined *puVar32;\n  code *pcVar33;\n  undefined *puVar34;\n  code *pcVar35;\n  uint uVar36;\n  uint *puStack_f8;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Stack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Stack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  __bucket_type *pp_Stack_6c;\n  uint uStack_68;\n  Task *pTStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (this < (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n              *)0x40000000) {\n    uVar3 = (*(code *)PTR_operator_new_0043233c)((int)this << 2);\n    pp_Var4 = (__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2);\n    return pp_Var4;\n  }\n  puVar32 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar34 = puVar32 + 0x1dbfbc;\n  puVar31 = *(uint **)(puVar32 + 0x1d5104);\n  puStack_48 = puVar34;\n  if (puVar31[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar32 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    pp_Var27 = (__bucket_type *)*in_a2;\n    unaff_s3 = (Task *)(this + 4);\n    pp_Var4 = (__bucket_type *)in_a2[1];\n    _Var1 = this[4];\n    iVar22 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar3 = *(undefined4 *)(iVar22 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar31[-0xa0c] = unaff_s1;\n    *(undefined4 **)this = in_a2;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar3;\n    unaff_s4 = (Workqueue *)__n;\n    unaff_s5 = this;\n    puVar34 = puStack_48;\n    if (_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                  )0x0) {\n      *(undefined4 *)(this + 0xc) = 0;\n      pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);\n      *(__bucket_type **)(this + 8) = pp_Var5;\n      if (pp_Var27 != pp_Var4) {\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }\n      return pp_Var5;\n    }\n  }\n  else {\n    (**(code **)(puVar32 + 0x1d41b0))\n              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8);\n  }\n  pp_Var27 = (__bucket_type *)(*(int *)(puVar34 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar34 + -0x7e0c))(pp_Var27,0x97,*(int *)(puVar34 + -0x7f64) + 0x1398);\n  iVar22 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar33 = *(code **)(puStack_48 + -0x7f78);\n  pcVar35 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;\n  pp_Var4 = pp_Var27;\n  (*pcVar33)();\n  puStack_88 = auStack_80;\n  pp_Stack_6c = pp_Var27;\n  uStack_68 = unaff_s1;\n  pTStack_60 = unaff_s3;\n  pcStack_5c = pcVar35;\n  (**(code **)(pcVar33 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar33 + 0x1d3e90) + 0x1308,*(int *)(pcVar33 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar29 = *(uint **)(iVar22 + 0x24);\n  uVar6 = (**(code **)(pcVar33 + 0x1d83a0))(puVar29);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    puVar7 = (undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6);\n    p_Var28 = (__bucket_type)(puVar7 + 2);\n    *pp_Var4 = (__bucket_type)(pp_Var4 + 2);\n    if ((__bucket_type)*puVar7 == p_Var28) {\n      p_Var25 = (__bucket_type)puVar7[3];\n      p_Var23 = (__bucket_type)puVar7[4];\n      p_Var19 = (__bucket_type)puVar7[5];\n      ((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;\n      pp_Var4[3] = p_Var25;\n      pp_Var4[4] = p_Var23;\n      pp_Var4[5] = p_Var19;\n    }\n    else {\n      *pp_Var4 = (__bucket_type)*puVar7;\n      pp_Var4[2] = (__bucket_type)puVar7[2];\n    }\n    pp_Var4[1] = (__bucket_type)puVar7[1];\n    *puVar7 = p_Var28;\n    puVar7[1] = 0;\n    *(undefined1 *)(puVar7 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar33 + 0x1d3eb0))();\n    }\n    return pp_Var4;\n  }\n  iVar22 = *(int *)(pcVar33 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar33 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar33 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar33 = *(code **)(pcVar33 + 0x1d3e7c);\n  iVar9 = iVar22;\n  (*pcVar33)();\n  puVar7 = *(undefined4 **)(*(int *)(pcVar33 + 0x1d4da8) + -0x2830);\n  uVar30 = *(uint *)(iVar9 + 0x24);\n  iStack_c8 = iVar22;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar29;\n  pWStack_b8 = unaff_s4;\n  p_Stack_b4 = unaff_s5;\n  puStack_b0 = puVar31;\n  (**(code **)(*(int *)*puVar7 + 8))((int *)*puVar7);\n  uVar6 = puVar7[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar20 = *(int **)(puVar7[1] + (uVar30 % uVar6) * 4);\n  if (piVar20 != (int *)0x0) {\n    uVar15 = ((int *)*piVar20)[1];\n    piVar21 = (int *)*piVar20;\n    do {\n      piVar16 = piVar21;\n      if (uVar30 == uVar15) {\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }\n      piVar21 = (int *)*piVar16;\n      if (piVar21 == (int *)0x0) break;\n      uVar15 = piVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20 = piVar16;\n    } while (uVar30 % uVar6 == uVar15 % uVar6);\n  }\n  pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\nLAB_0025e698:\n  (*pcVar35)();\n  puVar8 = (uint *)(**(code **)(pcVar33 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar8 + 7;\n  *puVar8 = uVar30;\n  iVar22 = *(int *)(pcVar33 + 0x1d3e44);\n  pcVar35 = *(code **)(pcVar33 + 0x1d8260);\n  puVar8[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar22 + -0x636c);\n  puVar8[4] = 0;\n  puVar8[7] = 0;\n  puVar8[2] = 1;\n  puVar8[3] = 0;\n  puVar8[6] = 0;\n  puVar8[5] = uVar6;\n  iVar22 = (*pcVar35)(uVar30);\n  if (iVar22 == 0) {\n    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d8394))();\n    if (*piVar20 == 2) goto LAB_0025e80c;\n    if (*piVar20 == 0x14) goto LAB_0025e80c;\n    puVar29 = (uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar8;\n    uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*piVar20);\n    (**(code **)(pcVar33 + 0x1d4814))(puVar29,uVar6,uVar3);\n    piVar20 = (int *)*puVar7;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar8 + 3;\n  puVar31 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar33 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);\n  if (iVar9 == 0) goto LAB_0025e7f8;\n  do {\n    iVar9 = iVar9 + 0x13;\n    puStack_f8 = puVar31;\n    iVar10 = (**(code **)(pcVar33 + 0x1d820c))(iVar9);\n    (**(code **)(pcVar33 + 0x1d3f18))(&puStack_f8,iVar9,iVar9 + iVar10,0);\n    unaff_s5 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907);\n    if (puVar8[2] == 0) {\n      trap(7);\n    }\n    puVar29 = (uint *)((uint)unaff_s5 % puVar8[2]);\n    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5);\n    if (piVar20 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\n    if (*piVar20 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar31) goto LAB_0025e720;\n      (**(code **)(pcVar33 + 0x1d3d1c))();\n      iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);\n      if (iVar9 != 0) break;\nLAB_0025e7f8:\n      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);\n      if (iVar9 == 0) {\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }\n      else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar20 + 8))(piVar20);\n      piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);\n      uVar6 = puVar7[2];\n      iVar9 = puVar7[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20[2] = (int)puVar8;\n      *piVar20 = 0;\n      piVar20[1] = uVar30;\n      puVar8 = (uint *)((uVar30 % uVar6) * 4);\n      piVar21 = *(int **)(iVar9 + (int)puVar8);\n      if (piVar21 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }\n      uVar15 = ((int *)*piVar21)[1];\n      piVar16 = (int *)*piVar21;\n      while (piVar18 = piVar16, uVar30 != uVar15) {\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar21 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar33 + 0x1d3d1c))(piVar20);\n      (**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar11 = (uint *)(*pcVar35)(0x20);\n      p_Var2 = p_Stack_f4;\n      *puVar11 = 0;\n      puVar11[1] = (uint)(puVar11 + 3);\n      if (puStack_f8 == puVar31) {\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }\n      else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }\n      uStack_cc = puVar8[6];\n      uVar15 = puVar8[4];\n      uVar6 = puVar8[2];\n      pcVar35 = *(code **)(pcVar33 + 0x1d45c0);\n      p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31;\n      (*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }\n      puVar8[4] = puVar8[4] + 1;\n    }\n  } while( true );\n}\n\n" comment (expression_statement "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  _Var1;" (update_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  _Var1" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  _Var1" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std::allocator<std" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc<std" (binary_expression "__bucket_type * __thiscall\nstd::__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\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{\n  _Hashtable_alloc" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std::allocator<std" (binary_expression "__bucket_type * __thiscall\nstd::__detail::\n_Hashtable_alloc<std" (binary_expression "__bucket_type * __thiscall" identifier * identifier) (ERROR "std::__detail::\n_Hashtable_alloc" identifier : : identifier : : identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) (ERROR ",_std::char_traits" , identifier : : identifier) < identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > identifier) > (ERROR "::_M_allocate_buckets\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)\n\n{" : : (call_expression "_M_allocate_buckets\n          (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)" identifier (argument_list "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n           *this,size_t __n)" ( (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) , (ERROR "_std::" identifier : :) (binary_expression "char_traits<char" identifier < identifier) (ERROR ">" >) , (ERROR "_std::" identifier : :) (binary_expression "allocator<char>_>,_true>_>_>\n           *this" (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 "*this" * identifier)) , identifier (ERROR "__n" identifier) ))) {) identifier) < identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::__detail::_Hash_node" : : identifier : : identifier) < identifier) (ERROR "::__cxx11::basic_string" : : identifier : : identifier) < identifier) (ERROR ",_std::char_traits" , identifier : : identifier) < identifier) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) > identifier) > (ERROR "," ,) identifier) > identifier) > 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) : :) (labeled_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Var2;" statement_identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) :) : (expression_statement "allocator<char>_>,_true>_>_>\n  *p_Var2;" (binary_expression "allocator<char>_>,_true>_>_>\n  *p_Var2" (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 "*p_Var2" * identifier)) ;)) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "__bucket_type *pp_Var4;" type_identifier (pointer_declarator "*pp_Var4" * identifier) ;) (declaration "__bucket_type *pp_Var5;" type_identifier (pointer_declarator "*pp_Var5" * identifier) ;) (declaration "Task *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uint *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "_Hash_node_base *p_Var17;" type_identifier (pointer_declarator "*p_Var17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "__bucket_type p_Var19;" type_identifier identifier ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined4 *in_a2;" type_identifier (pointer_declarator "*in_a2" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "__bucket_type p_Var23;" type_identifier identifier ;) (declaration "_Hash_node_base *p_Var24;" type_identifier (pointer_declarator "*p_Var24" * identifier) ;) (declaration "__bucket_type p_Var25;" type_identifier identifier ;) (declaration "uint *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "__bucket_type *pp_Var27;" type_identifier (pointer_declarator "*pp_Var27" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "__bucket_type p_Var28;" type_identifier identifier ;) (declaration "Task *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "Workqueue *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar30;" 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) : :) (labeled_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *unaff_s5;" statement_identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) :) : (expression_statement "allocator<char>_>,_true>_>_>\n  *unaff_s5;" (binary_expression "allocator<char>_>,_true>_>_>\n  *unaff_s5" (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 "*unaff_s5" * identifier)) ;)) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "undefined *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "uint *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * 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) : :) (labeled_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Stack_f4;" statement_identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) :) : (expression_statement "allocator<char>_>,_true>_>_>\n  *p_Stack_f4;" (binary_expression "allocator<char>_>,_true>_>_>\n  *p_Stack_f4" (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 "*p_Stack_f4" * identifier)) ;)) (declaration "uint uStack_f0;" type_identifier identifier ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "uint uStack_e4;" type_identifier identifier ;) (declaration "char acStack_e0 [4];" primitive_type (array_declarator "acStack_e0 [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_dc;" type_identifier identifier ;) (declaration "uint *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "uint *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "code *pcStack_d0;" type_identifier (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "undefined1 *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "undefined1 **ppuStack_c0;" type_identifier (pointer_declarator "**ppuStack_c0" * (pointer_declarator "*ppuStack_c0" * identifier)) ;) (declaration "uint *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "Workqueue *pWStack_b8;" type_identifier (pointer_declarator "*pWStack_b8" * 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) : :) (labeled_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Stack_b4;" statement_identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std:" : : (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) :) : (expression_statement "allocator<char>_>,_true>_>_>\n  *p_Stack_b4;" (binary_expression "allocator<char>_>,_true>_>_>\n  *p_Stack_b4" (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 "*p_Stack_b4" * identifier)) ;)) (declaration "uint *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "undefined1 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined1 auStack_80 [20];" type_identifier (array_declarator "auStack_80 [20]" identifier [ number_literal ]) ;) (declaration "__bucket_type *pp_Stack_6c;" type_identifier (pointer_declarator "*pp_Stack_6c" * identifier) ;) (declaration "uint uStack_68;" type_identifier identifier ;) (declaration "Task *pTStack_60;" type_identifier (pointer_declarator "*pTStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "undefined *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (if_statement "if (this < (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n              *)0x40000000) {\n    uVar3 = (*(code *)PTR_operator_new_0043233c)((int)this << 2);\n    pp_Var4 = (__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2);\n    return pp_Var4;\n  }" if (parenthesized_expression "(this < (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n              *)0x40000000)" ( (binary_expression "this < (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n              *)0x40000000)" 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              *)0x40000000)" ( (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              *)0x40000000" (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 "*)0x40000000" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n    uVar3 = (*(code *)PTR_operator_new_0043233c)((int)this << 2);\n    pp_Var4 = (__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2);\n    return pp_Var4;\n  }" { (expression_statement "uVar3 = (*(code *)PTR_operator_new_0043233c)((int)this << 2);" (assignment_expression "uVar3 = (*(code *)PTR_operator_new_0043233c)((int)this << 2)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)((int)this << 2)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)this << 2)" ( (binary_expression "(int)this << 2" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "pp_Var4 = (__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2);" (assignment_expression "pp_Var4 = (__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2)" identifier = (cast_expression "(__bucket_type *)(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memset_00436850)(uVar3,0,(int)this << 2)" (parenthesized_expression "(*(code *)PTR_memset_00436850)" ( (pointer_expression "*(code *)PTR_memset_00436850" * (cast_expression "(code *)PTR_memset_00436850" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar3,0,(int)this << 2)" ( identifier , number_literal , (binary_expression "(int)this << 2" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (return_statement "return pp_Var4;" return identifier ;) })) (expression_statement "puVar32 = PTR___throw_bad_alloc_00432404;" (assignment_expression "puVar32 = PTR___throw_bad_alloc_00432404" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_bad_alloc_00432404)();" (call_expression "(*(code *)PTR___throw_bad_alloc_00432404)()" (parenthesized_expression "(*(code *)PTR___throw_bad_alloc_00432404)" ( (pointer_expression "*(code *)PTR___throw_bad_alloc_00432404" * (cast_expression "(code *)PTR___throw_bad_alloc_00432404" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar34 = puVar32 + 0x1dbfbc;" (assignment_expression "puVar34 = puVar32 + 0x1dbfbc" identifier = (binary_expression "puVar32 + 0x1dbfbc" identifier + number_literal)) ;) (expression_statement "puVar31 = *(uint **)(puVar32 + 0x1d5104);" (assignment_expression "puVar31 = *(uint **)(puVar32 + 0x1d5104)" identifier = (pointer_expression "*(uint **)(puVar32 + 0x1d5104)" * (cast_expression "(uint **)(puVar32 + 0x1d5104)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x1d5104)" ( (binary_expression "puVar32 + 0x1d5104" identifier + number_literal) ))))) ;) (expression_statement "puStack_48 = puVar34;" (assignment_expression "puStack_48 = puVar34" identifier = identifier) ;) (if_statement "if (puVar31[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar32 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    pp_Var27 = (__bucket_type *)*in_a2;\n    unaff_s3 = (Task *)(this + 4);\n    pp_Var4 = (__bucket_type *)in_a2[1];\n    _Var1 = this[4];\n    iVar22 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar3 = *(undefined4 *)(iVar22 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar31[-0xa0c] = unaff_s1;\n    *(undefined4 **)this = in_a2;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar3;\n    unaff_s4 = (Workqueue *)__n;\n    unaff_s5 = this;\n    puVar34 = puStack_48;\n    if (_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                  )0x0) {\n      *(undefined4 *)(this + 0xc) = 0;\n      pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);\n      *(__bucket_type **)(this + 8) = pp_Var5;\n      if (pp_Var27 != pp_Var4) {\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }\n      return pp_Var5;\n    }\n  }\n  else {\n    (**(code **)(puVar32 + 0x1d41b0))\n              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8);\n  }" if (parenthesized_expression "(puVar31[-0xa0c] == 0)" ( (binary_expression "puVar31[-0xa0c] == 0" (subscript_expression "puVar31[-0xa0c]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    unaff_s1 = (**(code **)(puVar32 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    pp_Var27 = (__bucket_type *)*in_a2;\n    unaff_s3 = (Task *)(this + 4);\n    pp_Var4 = (__bucket_type *)in_a2[1];\n    _Var1 = this[4];\n    iVar22 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar3 = *(undefined4 *)(iVar22 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar31[-0xa0c] = unaff_s1;\n    *(undefined4 **)this = in_a2;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar3;\n    unaff_s4 = (Workqueue *)__n;\n    unaff_s5 = this;\n    puVar34 = puStack_48;\n    if (_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                  )0x0) {\n      *(undefined4 *)(this + 0xc) = 0;\n      pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);\n      *(__bucket_type **)(this + 8) = pp_Var5;\n      if (pp_Var27 != pp_Var4) {\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }\n      return pp_Var5;\n    }\n  }" { (expression_statement "unaff_s1 = (**(code **)(puVar32 + 0x1d4128))(0x20);" (assignment_expression "unaff_s1 = (**(code **)(puVar32 + 0x1d4128))(0x20)" identifier = (call_expression "(**(code **)(puVar32 + 0x1d4128))(0x20)" (parenthesized_expression "(**(code **)(puVar32 + 0x1d4128))" ( (pointer_expression "**(code **)(puVar32 + 0x1d4128)" * (pointer_expression "*(code **)(puVar32 + 0x1d4128)" * (cast_expression "(code **)(puVar32 + 0x1d4128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x1d4128)" ( (binary_expression "puVar32 + 0x1d4128" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "(**(code **)(puStack_48 + -0x61a0))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x61a0))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x61a0))" ( (pointer_expression "**(code **)(puStack_48 + -0x61a0)" * (pointer_expression "*(code **)(puStack_48 + -0x61a0)" * (cast_expression "(code **)(puStack_48 + -0x61a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x61a0)" ( (binary_expression "puStack_48 + -0x61a0" identifier + number_literal) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "pp_Var27 = (__bucket_type *)*in_a2;" (assignment_expression "pp_Var27 = (__bucket_type *)*in_a2" identifier = (cast_expression "(__bucket_type *)*in_a2" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*in_a2" * identifier))) ;) (expression_statement "unaff_s3 = (Task *)(this + 4);" (assignment_expression "unaff_s3 = (Task *)(this + 4)" identifier = (cast_expression "(Task *)(this + 4)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) ;) (expression_statement "pp_Var4 = (__bucket_type *)in_a2[1];" (assignment_expression "pp_Var4 = (__bucket_type *)in_a2[1]" identifier = (cast_expression "(__bucket_type *)in_a2[1]" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a2[1]" identifier [ number_literal ]))) ;) (expression_statement "_Var1 = this[4];" (assignment_expression "_Var1 = this[4]" identifier = (subscript_expression "this[4]" identifier [ number_literal ])) ;) (expression_statement "iVar22 = *(int *)(puStack_48 + -0x7e1c);" (assignment_expression "iVar22 = *(int *)(puStack_48 + -0x7e1c)" identifier = (pointer_expression "*(int *)(puStack_48 + -0x7e1c)" * (cast_expression "(int *)(puStack_48 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_48 + -0x7e1c)" ( (binary_expression "puStack_48 + -0x7e1c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(uint *)(unaff_s1 + 4)" * (cast_expression "(uint *)(unaff_s1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 4)" ( (binary_expression "unaff_s1 + 4" identifier + number_literal) )))) = (binary_expression "unaff_s1 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x10)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x10)" ( (binary_expression "unaff_s1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar22 + -0x636c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar22 + -0x636c)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + -0x636c)" * (cast_expression "(undefined4 *)(iVar22 + -0x636c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + -0x636c)" ( (binary_expression "iVar22 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 8) = 1;" (assignment_expression "*(undefined4 *)(unaff_s1 + 8) = 1" (pointer_expression "*(undefined4 *)(unaff_s1 + 8)" * (cast_expression "(undefined4 *)(unaff_s1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 8)" ( (binary_expression "unaff_s1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x1c)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x1c)" ( (binary_expression "unaff_s1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0xc)" * (cast_expression "(undefined4 *)(unaff_s1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0xc)" ( (binary_expression "unaff_s1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x18)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x18)" ( (binary_expression "unaff_s1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar31[-0xa0c] = unaff_s1;" (assignment_expression "puVar31[-0xa0c] = unaff_s1" (subscript_expression "puVar31[-0xa0c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined4 **)this = in_a2;" (assignment_expression "*(undefined4 **)this = in_a2" (pointer_expression "*(undefined4 **)this" * (cast_expression "(undefined4 **)this" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x14)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x14)" ( (binary_expression "unaff_s1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s4 = (Workqueue *)__n;" (assignment_expression "unaff_s4 = (Workqueue *)__n" identifier = (cast_expression "(Workqueue *)__n" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "unaff_s5 = this;" (assignment_expression "unaff_s5 = this" identifier = identifier) ;) (expression_statement "puVar34 = puStack_48;" (assignment_expression "puVar34 = puStack_48" identifier = identifier) ;) (if_statement "if (_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                  )0x0) {\n      *(undefined4 *)(this + 0xc) = 0;\n      pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);\n      *(__bucket_type **)(this + 8) = pp_Var5;\n      if (pp_Var27 != pp_Var4) {\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }\n      return pp_Var5;\n    }" if (parenthesized_expression "(_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                  )0x0)" ( (binary_expression "_Var1 != (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                  )0x0)" 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                  )0x0)" ( (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                  )0x0" (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) > (ERROR ")" )) number_literal) ))) )) (compound_statement "{\n      *(undefined4 *)(this + 0xc) = 0;\n      pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);\n      *(__bucket_type **)(this + 8) = pp_Var5;\n      if (pp_Var27 != pp_Var4) {\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }\n      return pp_Var5;\n    }" { (expression_statement "*(undefined4 *)(this + 0xc) = 0;" (assignment_expression "*(undefined4 *)(this + 0xc) = 0" (pointer_expression "*(undefined4 *)(this + 0xc)" * (cast_expression "(undefined4 *)(this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249);" (assignment_expression "pp_Var5 = (__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249)" identifier = (cast_expression "(__bucket_type *)\n                (*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249)" ( (binary_expression "*(int *)(this + 8) + ((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + (binary_expression "((int)pp_Var4 - (int)pp_Var27 >> 2) * -0x49249249" (parenthesized_expression "((int)pp_Var4 - (int)pp_Var27 >> 2)" ( (binary_expression "(int)pp_Var4 - (int)pp_Var27 >> 2" (binary_expression "(int)pp_Var4 - (int)pp_Var27" (cast_expression "(int)pp_Var4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pp_Var27" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "*(__bucket_type **)(this + 8) = pp_Var5;" (assignment_expression "*(__bucket_type **)(this + 8) = pp_Var5" (pointer_expression "*(__bucket_type **)(this + 8)" * (cast_expression "(__bucket_type **)(this + 8)" ( (type_descriptor "__bucket_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pp_Var27 != pp_Var4) {\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }" if (parenthesized_expression "(pp_Var27 != pp_Var4)" ( (binary_expression "pp_Var27 != pp_Var4" identifier != identifier) )) (compound_statement "{\n        iVar22 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);\n      }" { (expression_statement "iVar22 = *(int *)(puStack_48 + -0x7fd8);" (assignment_expression "iVar22 = *(int *)(puStack_48 + -0x7fd8)" identifier = (pointer_expression "*(int *)(puStack_48 + -0x7fd8)" * (cast_expression "(int *)(puStack_48 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_48 + -0x7fd8)" ( (binary_expression "puStack_48 + -0x7fd8" identifier + number_literal) ))))) ;) (do_statement "do {\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        } while (pp_Var5 != pp_Var27);" do (compound_statement "{\n          p_Var28 = *pp_Var27;\n          pp_Var27 = pp_Var27 + 7;\n          t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          t->list_next_ = (Task *)0x0;\n          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;\n          (t->name_)._M_string_length = 0;\n          (t->name_).field_2._M_local_buf[0] = '\0';\n          t->should_run_soon_ = false;\n          t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);\n          t[1]._vptr_Task = (_func_int_varargs **)p_Var28;\n          t[1].list_next_ = unaff_s3;\n          gold::Workqueue::queue((Workqueue *)__n,t);\n          pp_Var5 = (__bucket_type *)in_a2[1];\n        }" { (expression_statement "p_Var28 = *pp_Var27;" (assignment_expression "p_Var28 = *pp_Var27" identifier = (pointer_expression "*pp_Var27" * identifier)) ;) (expression_statement "pp_Var27 = pp_Var27 + 7;" (assignment_expression "pp_Var27 = pp_Var27 + 7" identifier = (binary_expression "pp_Var27 + 7" identifier + number_literal)) ;) (expression_statement "t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);" (assignment_expression "t = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" identifier = (cast_expression "(Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_48 + -0x7e94))(0x2c)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e94))" ( (pointer_expression "**(code **)(puStack_48 + -0x7e94)" * (pointer_expression "*(code **)(puStack_48 + -0x7e94)" * (cast_expression "(code **)(puStack_48 + -0x7e94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7e94)" ( (binary_expression "puStack_48 + -0x7e94" identifier + number_literal) ))))) )) (argument_list "(0x2c)" ( number_literal ))))) ;) (expression_statement "t->list_next_ = (Task *)0x0;" (assignment_expression "t->list_next_ = (Task *)0x0" (field_expression "t->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;" (assignment_expression "(t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2" (field_expression "(t->name_)._M_dataplus._M_p" (field_expression "(t->name_)._M_dataplus" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "(pointer)&(t->name_).field_2" (parenthesized_expression "(pointer)" ( identifier )) & (field_expression "(t->name_).field_2" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "(t->name_)._M_string_length = 0;" (assignment_expression "(t->name_)._M_string_length = 0" (field_expression "(t->name_)._M_string_length" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(t->name_).field_2._M_local_buf[0] = '\0';" (assignment_expression "(t->name_).field_2._M_local_buf[0] = '\0'" (subscript_expression "(t->name_).field_2._M_local_buf[0]" (field_expression "(t->name_).field_2._M_local_buf" (field_expression "(t->name_).field_2" (parenthesized_expression "(t->name_)" ( (field_expression "t->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "t->should_run_soon_ = false;" (assignment_expression "t->should_run_soon_ = false" (field_expression "t->should_run_soon_" identifier -> field_identifier) = false) ;) (expression_statement "t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48);" (assignment_expression "t->_vptr_Task = (_func_int_varargs **)(iVar22 + -0x6d48)" (field_expression "t->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(iVar22 + -0x6d48)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + -0x6d48)" ( (binary_expression "iVar22 + -0x6d48" identifier + number_literal) )))) ;) (expression_statement "t[1]._vptr_Task = (_func_int_varargs **)p_Var28;" (assignment_expression "t[1]._vptr_Task = (_func_int_varargs **)p_Var28" (field_expression "t[1]._vptr_Task" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_func_int_varargs **)p_Var28" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "t[1].list_next_ = unaff_s3;" (assignment_expression "t[1].list_next_ = unaff_s3" (field_expression "t[1].list_next_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "gold::Workqueue::queue((Workqueue *)__n,t);" statement_identifier : (ERROR ":" :) (labeled_statement "Workqueue::queue((Workqueue *)__n,t);" statement_identifier : (ERROR ":" :) (expression_statement "queue((Workqueue *)__n,t);" (call_expression "queue((Workqueue *)__n,t)" identifier (argument_list "((Workqueue *)__n,t)" ( (cast_expression "(Workqueue *)__n" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;))) (expression_statement "pp_Var5 = (__bucket_type *)in_a2[1];" (assignment_expression "pp_Var5 = (__bucket_type *)in_a2[1]" identifier = (cast_expression "(__bucket_type *)in_a2[1]" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "in_a2[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(pp_Var5 != pp_Var27)" ( (binary_expression "pp_Var5 != pp_Var27" identifier != identifier) )) ;) })) (return_statement "return pp_Var5;" return identifier ;) })) }) (else_clause "else {\n    (**(code **)(puVar32 + 0x1d41b0))\n              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8);\n  }" else (compound_statement "{\n    (**(code **)(puVar32 + 0x1d41b0))\n              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8);\n  }" { (expression_statement "(**(code **)(puVar32 + 0x1d41b0))\n              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8);" (call_expression "(**(code **)(puVar32 + 0x1d41b0))\n              (*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8)" (parenthesized_expression "(**(code **)(puVar32 + 0x1d41b0))" ( (pointer_expression "**(code **)(puVar32 + 0x1d41b0)" * (pointer_expression "*(code **)(puVar32 + 0x1d41b0)" * (cast_expression "(code **)(puVar32 + 0x1d41b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x1d41b0)" ( (binary_expression "puVar32 + 0x1d41b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar32 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar32 + 0x1d4058) + 0x13a8)" ( (binary_expression "*(int *)(puVar32 + 0x1d4058) + 0x12f0" (pointer_expression "*(int *)(puVar32 + 0x1d4058)" * (cast_expression "(int *)(puVar32 + 0x1d4058)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1d4058)" ( (binary_expression "puVar32 + 0x1d4058" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar32 + 0x1d4058) + 0x13a8" (pointer_expression "*(int *)(puVar32 + 0x1d4058)" * (cast_expression "(int *)(puVar32 + 0x1d4058)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1d4058)" ( (binary_expression "puVar32 + 0x1d4058" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pp_Var27 = (__bucket_type *)(*(int *)(puVar34 + -0x7fc4) + 0x48a0);" (assignment_expression "pp_Var27 = (__bucket_type *)(*(int *)(puVar34 + -0x7fc4) + 0x48a0)" identifier = (cast_expression "(__bucket_type *)(*(int *)(puVar34 + -0x7fc4) + 0x48a0)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar34 + -0x7fc4) + 0x48a0)" ( (binary_expression "*(int *)(puVar34 + -0x7fc4) + 0x48a0" (pointer_expression "*(int *)(puVar34 + -0x7fc4)" * (cast_expression "(int *)(puVar34 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + -0x7fc4)" ( (binary_expression "puVar34 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar34 + -0x7e0c))(pp_Var27,0x97,*(int *)(puVar34 + -0x7f64) + 0x1398);" (call_expression "(**(code **)(puVar34 + -0x7e0c))(pp_Var27,0x97,*(int *)(puVar34 + -0x7f64) + 0x1398)" (parenthesized_expression "(**(code **)(puVar34 + -0x7e0c))" ( (pointer_expression "**(code **)(puVar34 + -0x7e0c)" * (pointer_expression "*(code **)(puVar34 + -0x7e0c)" * (cast_expression "(code **)(puVar34 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + -0x7e0c)" ( (binary_expression "puVar34 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(pp_Var27,0x97,*(int *)(puVar34 + -0x7f64) + 0x1398)" ( identifier , number_literal , (binary_expression "*(int *)(puVar34 + -0x7f64) + 0x1398" (pointer_expression "*(int *)(puVar34 + -0x7f64)" * (cast_expression "(int *)(puVar34 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + -0x7f64)" ( (binary_expression "puVar34 + -0x7f64" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar22 = 0x20;" (assignment_expression "iVar22 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_48 + -0x7e10))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x7e10))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e10))" ( (pointer_expression "**(code **)(puStack_48 + -0x7e10)" * (pointer_expression "*(code **)(puStack_48 + -0x7e10)" * (cast_expression "(code **)(puStack_48 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7e10)" ( (binary_expression "puStack_48 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "pcVar33 = *(code **)(puStack_48 + -0x7f78);" (assignment_expression "pcVar33 = *(code **)(puStack_48 + -0x7f78)" identifier = (pointer_expression "*(code **)(puStack_48 + -0x7f78)" * (cast_expression "(code **)(puStack_48 + -0x7f78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7f78)" ( (binary_expression "puStack_48 + -0x7f78" identifier + number_literal) ))))) ;) (ERROR "pcVar35 = anon_unknown.dwarf_196a6c5::" (assignment_expression "pcVar35 = anon_unknown.dwarf_196a6c5" identifier = (field_expression "anon_unknown.dwarf_196a6c5" identifier . field_identifier)) : :) (labeled_statement "Dir_cache_task::get_name;" statement_identifier : (ERROR ":" :) (expression_statement "get_name;" identifier ;)) (expression_statement "pp_Var4 = pp_Var27;" (assignment_expression "pp_Var4 = pp_Var27" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_88 = auStack_80;" (assignment_expression "puStack_88 = auStack_80" identifier = identifier) ;) (expression_statement "pp_Stack_6c = pp_Var27;" (assignment_expression "pp_Stack_6c = pp_Var27" identifier = identifier) ;) (expression_statement "uStack_68 = unaff_s1;" (assignment_expression "uStack_68 = unaff_s1" identifier = identifier) ;) (expression_statement "pTStack_60 = unaff_s3;" (assignment_expression "pTStack_60 = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar35;" (assignment_expression "pcStack_5c = pcVar35" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar33 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar33 + 0x1d3e90) + 0x1308,*(int *)(pcVar33 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(pcVar33 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar33 + 0x1d3e90) + 0x1308,*(int *)(pcVar33 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d40ac))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d40ac)" * (pointer_expression "*(code **)(pcVar33 + 0x1d40ac)" * (cast_expression "(code **)(pcVar33 + 0x1d40ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d40ac)" ( (binary_expression "pcVar33 + 0x1d40ac" identifier + number_literal) ))))) )) (argument_list "(&puStack_88,*(int *)(pcVar33 + 0x1d3e90) + 0x1308,*(int *)(pcVar33 + 0x1d3e90) + 0x1317\n             ,0)" ( (pointer_expression "&puStack_88" & identifier) , (binary_expression "*(int *)(pcVar33 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(pcVar33 + 0x1d3e90)" * (cast_expression "(int *)(pcVar33 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3e90)" ( (binary_expression "pcVar33 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar33 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(pcVar33 + 0x1d3e90)" * (cast_expression "(int *)(pcVar33 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3e90)" ( (binary_expression "pcVar33 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar29 = *(uint **)(iVar22 + 0x24);" (assignment_expression "puVar29 = *(uint **)(iVar22 + 0x24)" identifier = (pointer_expression "*(uint **)(iVar22 + 0x24)" * (cast_expression "(uint **)(iVar22 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (**(code **)(pcVar33 + 0x1d83a0))(puVar29);" (assignment_expression "uVar6 = (**(code **)(pcVar33 + 0x1d83a0))(puVar29)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d83a0))(puVar29)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d83a0))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d83a0)" * (pointer_expression "*(code **)(pcVar33 + 0x1d83a0)" * (cast_expression "(code **)(pcVar33 + 0x1d83a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d83a0)" ( (binary_expression "pcVar33 + 0x1d83a0" identifier + number_literal) ))))) )) (argument_list "(puVar29)" ( identifier )))) ;) (if_statement "if (uVar6 <= 0x7fffffffU - iStack_84) {\n    puVar7 = (undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6);\n    p_Var28 = (__bucket_type)(puVar7 + 2);\n    *pp_Var4 = (__bucket_type)(pp_Var4 + 2);\n    if ((__bucket_type)*puVar7 == p_Var28) {\n      p_Var25 = (__bucket_type)puVar7[3];\n      p_Var23 = (__bucket_type)puVar7[4];\n      p_Var19 = (__bucket_type)puVar7[5];\n      ((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;\n      pp_Var4[3] = p_Var25;\n      pp_Var4[4] = p_Var23;\n      pp_Var4[5] = p_Var19;\n    }\n    else {\n      *pp_Var4 = (__bucket_type)*puVar7;\n      pp_Var4[2] = (__bucket_type)puVar7[2];\n    }\n    pp_Var4[1] = (__bucket_type)puVar7[1];\n    *puVar7 = p_Var28;\n    puVar7[1] = 0;\n    *(undefined1 *)(puVar7 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar33 + 0x1d3eb0))();\n    }\n    return pp_Var4;\n  }" if (parenthesized_expression "(uVar6 <= 0x7fffffffU - iStack_84)" ( (binary_expression "uVar6 <= 0x7fffffffU - iStack_84" identifier <= (binary_expression "0x7fffffffU - iStack_84" number_literal - identifier)) )) (compound_statement "{\n    puVar7 = (undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6);\n    p_Var28 = (__bucket_type)(puVar7 + 2);\n    *pp_Var4 = (__bucket_type)(pp_Var4 + 2);\n    if ((__bucket_type)*puVar7 == p_Var28) {\n      p_Var25 = (__bucket_type)puVar7[3];\n      p_Var23 = (__bucket_type)puVar7[4];\n      p_Var19 = (__bucket_type)puVar7[5];\n      ((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;\n      pp_Var4[3] = p_Var25;\n      pp_Var4[4] = p_Var23;\n      pp_Var4[5] = p_Var19;\n    }\n    else {\n      *pp_Var4 = (__bucket_type)*puVar7;\n      pp_Var4[2] = (__bucket_type)puVar7[2];\n    }\n    pp_Var4[1] = (__bucket_type)puVar7[1];\n    *puVar7 = p_Var28;\n    puVar7[1] = 0;\n    *(undefined1 *)(puVar7 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar33 + 0x1d3eb0))();\n    }\n    return pp_Var4;\n  }" { (expression_statement "puVar7 = (undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6);" (assignment_expression "puVar7 = (undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d4874))(&puStack_88,puVar29,uVar6)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d4874))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d4874)" * (pointer_expression "*(code **)(pcVar33 + 0x1d4874)" * (cast_expression "(code **)(pcVar33 + 0x1d4874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d4874)" ( (binary_expression "pcVar33 + 0x1d4874" identifier + number_literal) ))))) )) (argument_list "(&puStack_88,puVar29,uVar6)" ( (pointer_expression "&puStack_88" & identifier) , identifier , identifier ))))) ;) (expression_statement "p_Var28 = (__bucket_type)(puVar7 + 2);" (assignment_expression "p_Var28 = (__bucket_type)(puVar7 + 2)" identifier = (call_expression "(__bucket_type)(puVar7 + 2)" (parenthesized_expression "(__bucket_type)" ( identifier )) (argument_list "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) )))) ;) (expression_statement "*pp_Var4 = (__bucket_type)(pp_Var4 + 2);" (assignment_expression "*pp_Var4 = (__bucket_type)(pp_Var4 + 2)" (pointer_expression "*pp_Var4" * identifier) = (call_expression "(__bucket_type)(pp_Var4 + 2)" (parenthesized_expression "(__bucket_type)" ( identifier )) (argument_list "(pp_Var4 + 2)" ( (binary_expression "pp_Var4 + 2" identifier + number_literal) )))) ;) (if_statement "if ((__bucket_type)*puVar7 == p_Var28) {\n      p_Var25 = (__bucket_type)puVar7[3];\n      p_Var23 = (__bucket_type)puVar7[4];\n      p_Var19 = (__bucket_type)puVar7[5];\n      ((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;\n      pp_Var4[3] = p_Var25;\n      pp_Var4[4] = p_Var23;\n      pp_Var4[5] = p_Var19;\n    }\n    else {\n      *pp_Var4 = (__bucket_type)*puVar7;\n      pp_Var4[2] = (__bucket_type)puVar7[2];\n    }" if (parenthesized_expression "((__bucket_type)*puVar7 == p_Var28)" ( (binary_expression "(__bucket_type)*puVar7 == p_Var28" (binary_expression "(__bucket_type)*puVar7" (parenthesized_expression "(__bucket_type)" ( identifier )) * identifier) == identifier) )) (compound_statement "{\n      p_Var25 = (__bucket_type)puVar7[3];\n      p_Var23 = (__bucket_type)puVar7[4];\n      p_Var19 = (__bucket_type)puVar7[5];\n      ((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;\n      pp_Var4[3] = p_Var25;\n      pp_Var4[4] = p_Var23;\n      pp_Var4[5] = p_Var19;\n    }" { (expression_statement "p_Var25 = (__bucket_type)puVar7[3];" (assignment_expression "p_Var25 = (__bucket_type)puVar7[3]" identifier = (cast_expression "(__bucket_type)puVar7[3]" ( (type_descriptor "__bucket_type" type_identifier) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "p_Var23 = (__bucket_type)puVar7[4];" (assignment_expression "p_Var23 = (__bucket_type)puVar7[4]" identifier = (cast_expression "(__bucket_type)puVar7[4]" ( (type_descriptor "__bucket_type" type_identifier) ) (subscript_expression "puVar7[4]" identifier [ number_literal ]))) ;) (expression_statement "p_Var19 = (__bucket_type)puVar7[5];" (assignment_expression "p_Var19 = (__bucket_type)puVar7[5]" identifier = (cast_expression "(__bucket_type)puVar7[5]" ( (type_descriptor "__bucket_type" type_identifier) ) (subscript_expression "puVar7[5]" identifier [ number_literal ]))) ;) (expression_statement "((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt;" (assignment_expression "((__bucket_type)(pp_Var4 + 2))->_M_nxt = p_Var28->_M_nxt" (field_expression "((__bucket_type)(pp_Var4 + 2))->_M_nxt" (parenthesized_expression "((__bucket_type)(pp_Var4 + 2))" ( (call_expression "(__bucket_type)(pp_Var4 + 2)" (parenthesized_expression "(__bucket_type)" ( identifier )) (argument_list "(pp_Var4 + 2)" ( (binary_expression "pp_Var4 + 2" identifier + number_literal) ))) )) -> field_identifier) = (field_expression "p_Var28->_M_nxt" identifier -> field_identifier)) ;) (expression_statement "pp_Var4[3] = p_Var25;" (assignment_expression "pp_Var4[3] = p_Var25" (subscript_expression "pp_Var4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pp_Var4[4] = p_Var23;" (assignment_expression "pp_Var4[4] = p_Var23" (subscript_expression "pp_Var4[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pp_Var4[5] = p_Var19;" (assignment_expression "pp_Var4[5] = p_Var19" (subscript_expression "pp_Var4[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *pp_Var4 = (__bucket_type)*puVar7;\n      pp_Var4[2] = (__bucket_type)puVar7[2];\n    }" else (compound_statement "{\n      *pp_Var4 = (__bucket_type)*puVar7;\n      pp_Var4[2] = (__bucket_type)puVar7[2];\n    }" { (expression_statement "*pp_Var4 = (__bucket_type)*puVar7;" (assignment_expression "*pp_Var4 = (__bucket_type)*puVar7" (pointer_expression "*pp_Var4" * identifier) = (binary_expression "(__bucket_type)*puVar7" (parenthesized_expression "(__bucket_type)" ( identifier )) * identifier)) ;) (expression_statement "pp_Var4[2] = (__bucket_type)puVar7[2];" (assignment_expression "pp_Var4[2] = (__bucket_type)puVar7[2]" (subscript_expression "pp_Var4[2]" identifier [ number_literal ]) = (cast_expression "(__bucket_type)puVar7[2]" ( (type_descriptor "__bucket_type" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "pp_Var4[1] = (__bucket_type)puVar7[1];" (assignment_expression "pp_Var4[1] = (__bucket_type)puVar7[1]" (subscript_expression "pp_Var4[1]" identifier [ number_literal ]) = (cast_expression "(__bucket_type)puVar7[1]" ( (type_descriptor "__bucket_type" type_identifier) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar7 = p_Var28;" (assignment_expression "*puVar7 = p_Var28" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "puVar7[1] = 0;" (assignment_expression "puVar7[1] = 0" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 2)" * (cast_expression "(undefined1 *)(puVar7 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 2)" ( (binary_expression "puVar7 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar33 + 0x1d3eb0))();\n    }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n      (**(code **)(pcVar33 + 0x1d3eb0))();\n    }" { (expression_statement "(**(code **)(pcVar33 + 0x1d3eb0))();" (call_expression "(**(code **)(pcVar33 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3eb0))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3eb0)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3eb0)" * (cast_expression "(code **)(pcVar33 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3eb0)" ( (binary_expression "pcVar33 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return pp_Var4;" return identifier ;) })) (expression_statement "iVar22 = *(int *)(pcVar33 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar22 = *(int *)(pcVar33 + 0x1d3fd8) + -0x6240" identifier = (binary_expression "*(int *)(pcVar33 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(pcVar33 + 0x1d3fd8)" * (cast_expression "(int *)(pcVar33 + 0x1d3fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3fd8)" ( (binary_expression "pcVar33 + 0x1d3fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar33 + 0x1d40a4))();" (call_expression "(**(code **)(pcVar33 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d40a4))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d40a4)" * (pointer_expression "*(code **)(pcVar33 + 0x1d40a4)" * (cast_expression "(code **)(pcVar33 + 0x1d40a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d40a4)" ( (binary_expression "pcVar33 + 0x1d40a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar33 + 0x1d3eb0))(puStack_88);\n  }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n    (**(code **)(pcVar33 + 0x1d3eb0))(puStack_88);\n  }" { (expression_statement "(**(code **)(pcVar33 + 0x1d3eb0))(puStack_88);" (call_expression "(**(code **)(pcVar33 + 0x1d3eb0))(puStack_88)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3eb0))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3eb0)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3eb0)" * (cast_expression "(code **)(pcVar33 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3eb0)" ( (binary_expression "pcVar33 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) })) (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x1d3e7c);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x1d3e7c)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1d3e7c)" * (cast_expression "(code **)(pcVar33 + 0x1d3e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3e7c)" ( (binary_expression "pcVar33 + 0x1d3e7c" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = iVar22;" (assignment_expression "iVar9 = iVar22" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar7 = *(undefined4 **)(*(int *)(pcVar33 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar7 = *(undefined4 **)(*(int *)(pcVar33 + 0x1d4da8) + -0x2830)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pcVar33 + 0x1d4da8) + -0x2830)" * (cast_expression "(undefined4 **)(*(int *)(pcVar33 + 0x1d4da8) + -0x2830)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x1d4da8) + -0x2830)" ( (binary_expression "*(int *)(pcVar33 + 0x1d4da8) + -0x2830" (pointer_expression "*(int *)(pcVar33 + 0x1d4da8)" * (cast_expression "(int *)(pcVar33 + 0x1d4da8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d4da8)" ( (binary_expression "pcVar33 + 0x1d4da8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar30 = *(uint *)(iVar9 + 0x24);" (assignment_expression "uVar30 = *(uint *)(iVar9 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar9 + 0x24)" * (cast_expression "(uint *)(iVar9 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iStack_c8 = iVar22;" (assignment_expression "iStack_c8 = iVar22" identifier = identifier) ;) (expression_statement "puStack_c4 = auStack_80;" (assignment_expression "puStack_c4 = auStack_80" identifier = identifier) ;) (expression_statement "ppuStack_c0 = &puStack_88;" (assignment_expression "ppuStack_c0 = &puStack_88" identifier = (pointer_expression "&puStack_88" & identifier)) ;) (expression_statement "puStack_bc = puVar29;" (assignment_expression "puStack_bc = puVar29" identifier = identifier) ;) (expression_statement "pWStack_b8 = unaff_s4;" (assignment_expression "pWStack_b8 = unaff_s4" identifier = identifier) ;) (expression_statement "p_Stack_b4 = unaff_s5;" (assignment_expression "p_Stack_b4 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_b0 = puVar31;" (assignment_expression "puStack_b0 = puVar31" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)*puVar7 + 8))((int *)*puVar7);" (call_expression "(**(code **)(*(int *)*puVar7 + 8))((int *)*puVar7)" (parenthesized_expression "(**(code **)(*(int *)*puVar7 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar7 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar7 + 8)" * (cast_expression "(code **)(*(int *)*puVar7 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 8)" ( (binary_expression "*(int *)*puVar7 + 8" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) ))) ;) (expression_statement "uVar6 = puVar7[2];" (assignment_expression "uVar6 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar20 = *(int **)(puVar7[1] + (uVar30 % uVar6) * 4);" (assignment_expression "piVar20 = *(int **)(puVar7[1] + (uVar30 % uVar6) * 4)" identifier = (pointer_expression "*(int **)(puVar7[1] + (uVar30 % uVar6) * 4)" * (cast_expression "(int **)(puVar7[1] + (uVar30 % uVar6) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7[1] + (uVar30 % uVar6) * 4)" ( (binary_expression "puVar7[1] + (uVar30 % uVar6) * 4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) + (binary_expression "(uVar30 % uVar6) * 4" (parenthesized_expression "(uVar30 % uVar6)" ( (binary_expression "uVar30 % uVar6" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar20 != (int *)0x0) {\n    uVar15 = ((int *)*piVar20)[1];\n    piVar21 = (int *)*piVar20;\n    do {\n      piVar16 = piVar21;\n      if (uVar30 == uVar15) {\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }\n      piVar21 = (int *)*piVar16;\n      if (piVar21 == (int *)0x0) break;\n      uVar15 = piVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20 = piVar16;\n    } while (uVar30 % uVar6 == uVar15 % uVar6);\n  }" if (parenthesized_expression "(piVar20 != (int *)0x0)" ( (binary_expression "piVar20 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar15 = ((int *)*piVar20)[1];\n    piVar21 = (int *)*piVar20;\n    do {\n      piVar16 = piVar21;\n      if (uVar30 == uVar15) {\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }\n      piVar21 = (int *)*piVar16;\n      if (piVar21 == (int *)0x0) break;\n      uVar15 = piVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20 = piVar16;\n    } while (uVar30 % uVar6 == uVar15 % uVar6);\n  }" { (expression_statement "uVar15 = ((int *)*piVar20)[1];" (assignment_expression "uVar15 = ((int *)*piVar20)[1]" identifier = (subscript_expression "((int *)*piVar20)[1]" (parenthesized_expression "((int *)*piVar20)" ( (cast_expression "(int *)*piVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar21 = (int *)*piVar20;" (assignment_expression "piVar21 = (int *)*piVar20" identifier = (cast_expression "(int *)*piVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier))) ;) (do_statement "do {\n      piVar16 = piVar21;\n      if (uVar30 == uVar15) {\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }\n      piVar21 = (int *)*piVar16;\n      if (piVar21 == (int *)0x0) break;\n      uVar15 = piVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20 = piVar16;\n    } while (uVar30 % uVar6 == uVar15 % uVar6);" do (compound_statement "{\n      piVar16 = piVar21;\n      if (uVar30 == uVar15) {\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }\n      piVar21 = (int *)*piVar16;\n      if (piVar21 == (int *)0x0) break;\n      uVar15 = piVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20 = piVar16;\n    }" { (expression_statement "piVar16 = piVar21;" (assignment_expression "piVar16 = piVar21" identifier = identifier) ;) (if_statement "if (uVar30 == uVar15) {\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }" if (parenthesized_expression "(uVar30 == uVar15)" ( (binary_expression "uVar30 == uVar15" identifier == identifier) )) (compound_statement "{\n        pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);\n        if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }\n        goto LAB_0025e698;\n      }" { (expression_statement "pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);" (assignment_expression "pcVar35 = *(code **)(*(int *)*puVar7 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar7 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0xc)" ( (binary_expression "*(int *)*puVar7 + 0xc" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)) {\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }" if (parenthesized_expression "((*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0))" ( (binary_expression "(*piVar20 != 0) && (*(int *)(*piVar20 + 8) != 0)" (parenthesized_expression "(*piVar20 != 0)" ( (binary_expression "*piVar20 != 0" (pointer_expression "*piVar20" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar20 + 8) != 0)" ( (binary_expression "*(int *)(*piVar20 + 8) != 0" (pointer_expression "*(int *)(*piVar20 + 8)" * (cast_expression "(int *)(*piVar20 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 8)" ( (binary_expression "*piVar20 + 8" (pointer_expression "*piVar20" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          pp_Var4 = (__bucket_type *)(*pcVar35)();\n          return pp_Var4;\n        }" { (expression_statement "pp_Var4 = (__bucket_type *)(*pcVar35)();" (assignment_expression "pp_Var4 = (__bucket_type *)(*pcVar35)()" identifier = (cast_expression "(__bucket_type *)(*pcVar35)()" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))))) ;) (return_statement "return pp_Var4;" return identifier ;) })) (goto_statement "goto LAB_0025e698;" goto statement_identifier ;) })) (expression_statement "piVar21 = (int *)*piVar16;" (assignment_expression "piVar21 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;) (if_statement "if (piVar21 == (int *)0x0) break;" if (parenthesized_expression "(piVar21 == (int *)0x0)" ( (binary_expression "piVar21 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar15 = piVar21[1];" (assignment_expression "uVar15 = piVar21[1]" identifier = (subscript_expression "piVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar20 = piVar16;" (assignment_expression "piVar20 = piVar16" identifier = identifier) ;) }) while (parenthesized_expression "(uVar30 % uVar6 == uVar15 % uVar6)" ( (binary_expression "uVar30 % uVar6 == uVar15 % uVar6" (binary_expression "uVar30 % uVar6" identifier % identifier) == (binary_expression "uVar15 % uVar6" identifier % identifier)) )) ;) })) (expression_statement "pcVar35 = *(code **)(*(int *)*puVar7 + 0xc);" (assignment_expression "pcVar35 = *(code **)(*(int *)*puVar7 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar7 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar7 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar7 + 0xc)" ( (binary_expression "*(int *)*puVar7 + 0xc" (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0025e698:\n  (*pcVar35)();" statement_identifier : (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar8 = (uint *)(**(code **)(pcVar33 + 0x1d3dcc))(0x20);" (assignment_expression "puVar8 = (uint *)(**(code **)(pcVar33 + 0x1d3dcc))(0x20)" identifier = (cast_expression "(uint *)(**(code **)(pcVar33 + 0x1d3dcc))(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d3dcc))(0x20)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar33 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3dcc)" ( (binary_expression "pcVar33 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "puStack_d4 = puVar8 + 7;" (assignment_expression "puStack_d4 = puVar8 + 7" identifier = (binary_expression "puVar8 + 7" identifier + number_literal)) ;) (expression_statement "*puVar8 = uVar30;" (assignment_expression "*puVar8 = uVar30" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "iVar22 = *(int *)(pcVar33 + 0x1d3e44);" (assignment_expression "iVar22 = *(int *)(pcVar33 + 0x1d3e44)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x1d3e44)" * (cast_expression "(int *)(pcVar33 + 0x1d3e44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3e44)" ( (binary_expression "pcVar33 + 0x1d3e44" identifier + number_literal) ))))) ;) (expression_statement "pcVar35 = *(code **)(pcVar33 + 0x1d8260);" (assignment_expression "pcVar35 = *(code **)(pcVar33 + 0x1d8260)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1d8260)" * (cast_expression "(code **)(pcVar33 + 0x1d8260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d8260)" ( (binary_expression "pcVar33 + 0x1d8260" identifier + number_literal) ))))) ;) (expression_statement "puVar8[1] = (uint)puStack_d4;" (assignment_expression "puVar8[1] = (uint)puStack_d4" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = *(uint *)(iVar22 + -0x636c);" (assignment_expression "uVar6 = *(uint *)(iVar22 + -0x636c)" identifier = (pointer_expression "*(uint *)(iVar22 + -0x636c)" * (cast_expression "(uint *)(iVar22 + -0x636c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + -0x636c)" ( (binary_expression "iVar22 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "puVar8[4] = 0;" (assignment_expression "puVar8[4] = 0" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[2] = 1;" (assignment_expression "puVar8[2] = 1" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[6] = 0;" (assignment_expression "puVar8[6] = 0" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar8[5] = uVar6;" (assignment_expression "puVar8[5] = uVar6" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar22 = (*pcVar35)(uVar30);" (assignment_expression "iVar22 = (*pcVar35)(uVar30)" identifier = (call_expression "(*pcVar35)(uVar30)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(uVar30)" ( identifier )))) ;) (if_statement "if (iVar22 == 0) {\n    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d8394))();\n    if (*piVar20 == 2) goto LAB_0025e80c;\n    if (*piVar20 == 0x14) goto LAB_0025e80c;\n    puVar29 = (uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar8;\n    uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*piVar20);\n    (**(code **)(pcVar33 + 0x1d4814))(puVar29,uVar6,uVar3);\n    piVar20 = (int *)*puVar7;\n    goto LAB_0025e810;\n  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d8394))();\n    if (*piVar20 == 2) goto LAB_0025e80c;\n    if (*piVar20 == 0x14) goto LAB_0025e80c;\n    puVar29 = (uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar8;\n    uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*piVar20);\n    (**(code **)(pcVar33 + 0x1d4814))(puVar29,uVar6,uVar3);\n    piVar20 = (int *)*puVar7;\n    goto LAB_0025e810;\n  }" { (expression_statement "piVar20 = (int *)(**(code **)(pcVar33 + 0x1d8394))();" (assignment_expression "piVar20 = (int *)(**(code **)(pcVar33 + 0x1d8394))()" identifier = (cast_expression "(int *)(**(code **)(pcVar33 + 0x1d8394))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar33 + 0x1d8394)" * (cast_expression "(code **)(pcVar33 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d8394)" ( (binary_expression "pcVar33 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar20 == 2) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar20 == 2)" ( (binary_expression "*piVar20 == 2" (pointer_expression "*piVar20" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (if_statement "if (*piVar20 == 0x14) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar20 == 0x14)" ( (binary_expression "*piVar20 == 0x14" (pointer_expression "*piVar20" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (expression_statement "puVar29 = (uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar29 = (uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318)" identifier = (cast_expression "(uint *)(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d82a8))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d82a8))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d82a8)" * (pointer_expression "*(code **)(pcVar33 + 0x1d82a8)" * (cast_expression "(code **)(pcVar33 + 0x1d82a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d82a8)" ( (binary_expression "pcVar33 + 0x1d82a8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + 0x1d3cfc) + 0x1318)" ( (binary_expression "*(int *)(pcVar33 + 0x1d3cfc) + 0x1318" (pointer_expression "*(int *)(pcVar33 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar33 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3cfc)" ( (binary_expression "pcVar33 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar6 = *puVar8;" (assignment_expression "uVar6 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*piVar20);" (assignment_expression "uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*piVar20)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d8374))(*piVar20)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar33 + 0x1d8374)" * (cast_expression "(code **)(pcVar33 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d8374)" ( (binary_expression "pcVar33 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*piVar20)" ( (pointer_expression "*piVar20" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1d4814))(puVar29,uVar6,uVar3);" (call_expression "(**(code **)(pcVar33 + 0x1d4814))(puVar29,uVar6,uVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d4814))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d4814)" * (pointer_expression "*(code **)(pcVar33 + 0x1d4814)" * (cast_expression "(code **)(pcVar33 + 0x1d4814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d4814)" ( (binary_expression "pcVar33 + 0x1d4814" identifier + number_literal) ))))) )) (argument_list "(puVar29,uVar6,uVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) (goto_statement "goto LAB_0025e810;" goto statement_identifier ;) })) (expression_statement "puStack_d8 = puVar8 + 3;" (assignment_expression "puStack_d8 = puVar8 + 3" identifier = (binary_expression "puVar8 + 3" identifier + number_literal)) ;) (expression_statement "puVar31 = &uStack_f0;" (assignment_expression "puVar31 = &uStack_f0" identifier = (pointer_expression "&uStack_f0" & identifier)) ;) (expression_statement "pcStack_d0 = (code *)(*(int *)(pcVar33 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_d0 = (code *)(*(int *)(pcVar33 + 0x1d71a4) + -0x1e58)" identifier = (cast_expression "(code *)(*(int *)(pcVar33 + 0x1d71a4) + -0x1e58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x1d71a4) + -0x1e58)" ( (binary_expression "*(int *)(pcVar33 + 0x1d71a4) + -0x1e58" (pointer_expression "*(int *)(pcVar33 + 0x1d71a4)" * (cast_expression "(int *)(pcVar33 + 0x1d71a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d71a4)" ( (binary_expression "pcVar33 + 0x1d71a4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0025e720:\n  iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);" statement_identifier : (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d822c))(iVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d822c)" * (cast_expression "(code **)(pcVar33 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d822c)" ( (binary_expression "pcVar33 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar22)" ( identifier )))) ;)) (if_statement "if (iVar9 == 0) goto LAB_0025e7f8;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025e7f8;" goto statement_identifier ;)) (do_statement "do {\n    iVar9 = iVar9 + 0x13;\n    puStack_f8 = puVar31;\n    iVar10 = (**(code **)(pcVar33 + 0x1d820c))(iVar9);\n    (**(code **)(pcVar33 + 0x1d3f18))(&puStack_f8,iVar9,iVar9 + iVar10,0);\n    unaff_s5 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907);\n    if (puVar8[2] == 0) {\n      trap(7);\n    }\n    puVar29 = (uint *)((uint)unaff_s5 % puVar8[2]);\n    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5);\n    if (piVar20 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\n    if (*piVar20 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar31) goto LAB_0025e720;\n      (**(code **)(pcVar33 + 0x1d3d1c))();\n      iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);\n      if (iVar9 != 0) break;\nLAB_0025e7f8:\n      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);\n      if (iVar9 == 0) {\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }\n      else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar20 + 8))(piVar20);\n      piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);\n      uVar6 = puVar7[2];\n      iVar9 = puVar7[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20[2] = (int)puVar8;\n      *piVar20 = 0;\n      piVar20[1] = uVar30;\n      puVar8 = (uint *)((uVar30 % uVar6) * 4);\n      piVar21 = *(int **)(iVar9 + (int)puVar8);\n      if (piVar21 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }\n      uVar15 = ((int *)*piVar21)[1];\n      piVar16 = (int *)*piVar21;\n      while (piVar18 = piVar16, uVar30 != uVar15) {\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar21 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar33 + 0x1d3d1c))(piVar20);\n      (**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar11 = (uint *)(*pcVar35)(0x20);\n      p_Var2 = p_Stack_f4;\n      *puVar11 = 0;\n      puVar11[1] = (uint)(puVar11 + 3);\n      if (puStack_f8 == puVar31) {\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }\n      else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }\n      uStack_cc = puVar8[6];\n      uVar15 = puVar8[4];\n      uVar6 = puVar8[2];\n      pcVar35 = *(code **)(pcVar33 + 0x1d45c0);\n      p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31;\n      (*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }\n      puVar8[4] = puVar8[4] + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar9 = iVar9 + 0x13;\n    puStack_f8 = puVar31;\n    iVar10 = (**(code **)(pcVar33 + 0x1d820c))(iVar9);\n    (**(code **)(pcVar33 + 0x1d3f18))(&puStack_f8,iVar9,iVar9 + iVar10,0);\n    unaff_s5 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907);\n    if (puVar8[2] == 0) {\n      trap(7);\n    }\n    puVar29 = (uint *)((uint)unaff_s5 % puVar8[2]);\n    piVar20 = (int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5);\n    if (piVar20 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\n    if (*piVar20 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar31) goto LAB_0025e720;\n      (**(code **)(pcVar33 + 0x1d3d1c))();\n      iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);\n      if (iVar9 != 0) break;\nLAB_0025e7f8:\n      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);\n      if (iVar9 == 0) {\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }\n      else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar20 + 8))(piVar20);\n      piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);\n      uVar6 = puVar7[2];\n      iVar9 = puVar7[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20[2] = (int)puVar8;\n      *piVar20 = 0;\n      piVar20[1] = uVar30;\n      puVar8 = (uint *)((uVar30 % uVar6) * 4);\n      piVar21 = *(int **)(iVar9 + (int)puVar8);\n      if (piVar21 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }\n      uVar15 = ((int *)*piVar21)[1];\n      piVar16 = (int *)*piVar21;\n      while (piVar18 = piVar16, uVar30 != uVar15) {\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar21 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar33 + 0x1d3d1c))(piVar20);\n      (**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar11 = (uint *)(*pcVar35)(0x20);\n      p_Var2 = p_Stack_f4;\n      *puVar11 = 0;\n      puVar11[1] = (uint)(puVar11 + 3);\n      if (puStack_f8 == puVar31) {\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }\n      else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }\n      uStack_cc = puVar8[6];\n      uVar15 = puVar8[4];\n      uVar6 = puVar8[2];\n      pcVar35 = *(code **)(pcVar33 + 0x1d45c0);\n      p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31;\n      (*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }\n      puVar8[4] = puVar8[4] + 1;\n    }\n  }" { (expression_statement "iVar9 = iVar9 + 0x13;" (assignment_expression "iVar9 = iVar9 + 0x13" identifier = (binary_expression "iVar9 + 0x13" identifier + number_literal)) ;) (expression_statement "puStack_f8 = puVar31;" (assignment_expression "puStack_f8 = puVar31" identifier = identifier) ;) (expression_statement "iVar10 = (**(code **)(pcVar33 + 0x1d820c))(iVar9);" (assignment_expression "iVar10 = (**(code **)(pcVar33 + 0x1d820c))(iVar9)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d820c))(iVar9)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d820c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d820c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d820c)" * (cast_expression "(code **)(pcVar33 + 0x1d820c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d820c)" ( (binary_expression "pcVar33 + 0x1d820c" identifier + number_literal) ))))) )) (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1d3f18))(&puStack_f8,iVar9,iVar9 + iVar10,0);" (call_expression "(**(code **)(pcVar33 + 0x1d3f18))(&puStack_f8,iVar9,iVar9 + iVar10,0)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3f18))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3f18)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3f18)" * (cast_expression "(code **)(pcVar33 + 0x1d3f18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3f18)" ( (binary_expression "pcVar33 + 0x1d3f18" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8,iVar9,iVar9 + iVar10,0)" ( (pointer_expression "&puStack_f8" & identifier) , identifier , (binary_expression "iVar9 + iVar10" identifier + identifier) , number_literal ))) ;) (expression_statement "unaff_s5 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907);" (assignment_expression "unaff_s5 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907)" identifier = (call_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))(puStack_f8,p_Stack_f4,0xc70f6907)" (call_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)(**(code **)(pcVar33 + 0x1d4af0))" (parenthesized_expression "(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                *)" ( (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                *" (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 "*" * identifier)) )) (argument_list "(**(code **)(pcVar33 + 0x1d4af0))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d4af0)" * (pointer_expression "*(code **)(pcVar33 + 0x1d4af0)" * (cast_expression "(code **)(pcVar33 + 0x1d4af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d4af0)" ( (binary_expression "pcVar33 + 0x1d4af0" identifier + number_literal) ))))) ))) (argument_list "(puStack_f8,p_Stack_f4,0xc70f6907)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (puVar8[2] == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(puVar8[2] == 0)" ( (binary_expression "puVar8[2] == 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar29 = (uint *)((uint)unaff_s5 % puVar8[2]);" (assignment_expression "puVar29 = (uint *)((uint)unaff_s5 % puVar8[2])" identifier = (cast_expression "(uint *)((uint)unaff_s5 % puVar8[2])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s5 % puVar8[2])" ( (binary_expression "(uint)unaff_s5 % puVar8[2]" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % (subscript_expression "puVar8[2]" identifier [ number_literal ])) )))) ;) (expression_statement "piVar20 = (int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5);" (assignment_expression "piVar20 = (int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5)" identifier = (cast_expression "(int *)(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d4f88))(puVar8 + 1,puVar29,&puStack_f8,unaff_s5)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d4f88))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d4f88)" * (pointer_expression "*(code **)(pcVar33 + 0x1d4f88)" * (cast_expression "(code **)(pcVar33 + 0x1d4f88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d4f88)" ( (binary_expression "pcVar33 + 0x1d4f88" identifier + number_literal) ))))) )) (argument_list "(puVar8 + 1,puVar29,&puStack_f8,unaff_s5)" ( (binary_expression "puVar8 + 1" identifier + number_literal) , identifier , (pointer_expression "&puStack_f8" & identifier) , identifier ))))) ;) (if_statement "if (piVar20 == (int *)0x0) goto LAB_0025e8e0;" if (parenthesized_expression "(piVar20 == (int *)0x0)" ( (binary_expression "piVar20 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025e8e0;" goto statement_identifier ;)) (expression_statement "pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);" (assignment_expression "pcVar35 = *(code **)(pcVar33 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar33 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3dcc)" ( (binary_expression "pcVar33 + 0x1d3dcc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar20 == 0) goto LAB_0025e8e4;" if (parenthesized_expression "(*piVar20 == 0)" ( (binary_expression "*piVar20 == 0" (pointer_expression "*piVar20" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e8e4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      if (puStack_f8 == puVar31) goto LAB_0025e720;\n      (**(code **)(pcVar33 + 0x1d3d1c))();\n      iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);\n      if (iVar9 != 0) break;\nLAB_0025e7f8:\n      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);\n      if (iVar9 == 0) {\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }\n      else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar20 + 8))(piVar20);\n      piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);\n      uVar6 = puVar7[2];\n      iVar9 = puVar7[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20[2] = (int)puVar8;\n      *piVar20 = 0;\n      piVar20[1] = uVar30;\n      puVar8 = (uint *)((uVar30 % uVar6) * 4);\n      piVar21 = *(int **)(iVar9 + (int)puVar8);\n      if (piVar21 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }\n      uVar15 = ((int *)*piVar21)[1];\n      piVar16 = (int *)*piVar21;\n      while (piVar18 = piVar16, uVar30 != uVar15) {\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar21 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar33 + 0x1d3d1c))(piVar20);\n      (**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar11 = (uint *)(*pcVar35)(0x20);\n      p_Var2 = p_Stack_f4;\n      *puVar11 = 0;\n      puVar11[1] = (uint)(puVar11 + 3);\n      if (puStack_f8 == puVar31) {\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }\n      else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }\n      uStack_cc = puVar8[6];\n      uVar15 = puVar8[4];\n      uVar6 = puVar8[2];\n      pcVar35 = *(code **)(pcVar33 + 0x1d45c0);\n      p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31;\n      (*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }\n      puVar8[4] = puVar8[4] + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (puStack_f8 == puVar31) goto LAB_0025e720;\n      (**(code **)(pcVar33 + 0x1d3d1c))();\n      iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);\n      if (iVar9 != 0) break;\nLAB_0025e7f8:\n      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);\n      if (iVar9 == 0) {\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }\n      else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar20 + 8))(piVar20);\n      piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);\n      uVar6 = puVar7[2];\n      iVar9 = puVar7[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar20[2] = (int)puVar8;\n      *piVar20 = 0;\n      piVar20[1] = uVar30;\n      puVar8 = (uint *)((uVar30 % uVar6) * 4);\n      piVar21 = *(int **)(iVar9 + (int)puVar8);\n      if (piVar21 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }\n      uVar15 = ((int *)*piVar21)[1];\n      piVar16 = (int *)*piVar21;\n      while (piVar18 = piVar16, uVar30 != uVar15) {\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar21 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar33 + 0x1d3d1c))(piVar20);\n      (**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar11 = (uint *)(*pcVar35)(0x20);\n      p_Var2 = p_Stack_f4;\n      *puVar11 = 0;\n      puVar11[1] = (uint)(puVar11 + 3);\n      if (puStack_f8 == puVar31) {\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }\n      else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }\n      uStack_cc = puVar8[6];\n      uVar15 = puVar8[4];\n      uVar6 = puVar8[2];\n      pcVar35 = *(code **)(pcVar33 + 0x1d45c0);\n      p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31;\n      (*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }\n      puVar8[4] = puVar8[4] + 1;\n    }" { (if_statement "if (puStack_f8 == puVar31) goto LAB_0025e720;" if (parenthesized_expression "(puStack_f8 == puVar31)" ( (binary_expression "puStack_f8 == puVar31" identifier == identifier) )) (goto_statement "goto LAB_0025e720;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar33 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar33 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar33 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3d1c)" ( (binary_expression "pcVar33 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x1d822c))(iVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d822c))(iVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d822c)" * (cast_expression "(code **)(pcVar33 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d822c)" ( (binary_expression "pcVar33 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar22)" ( identifier )))) ;) (if_statement "if (iVar9 != 0) break;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0025e7f8:\n      iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);" statement_identifier : (expression_statement "iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22);" (assignment_expression "iVar9 = (**(code **)(pcVar33 + 0x1d81c8))(iVar22)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d81c8))(iVar22)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d81c8))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d81c8)" * (pointer_expression "*(code **)(pcVar33 + 0x1d81c8)" * (cast_expression "(code **)(pcVar33 + 0x1d81c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d81c8)" ( (binary_expression "pcVar33 + 0x1d81c8" identifier + number_literal) ))))) )) (argument_list "(iVar22)" ( identifier )))) ;)) (if_statement "if (iVar9 == 0) {\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }\n      else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e80c:\n        piVar20 = (int *)*puVar7;\n      }" { (labeled_statement "LAB_0025e80c:\n        piVar20 = (int *)*puVar7;" statement_identifier : (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;)) }) (else_clause "else {\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }" else (compound_statement "{\n        uVar6 = *puVar8;\n        puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();\n        uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);\n        (**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);\n        piVar20 = (int *)*puVar7;\n      }" { (expression_statement "uVar6 = *puVar8;" (assignment_expression "uVar6 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))();" (assignment_expression "puVar14 = (undefined4 *)(**(code **)(pcVar33 + 0x1d8394))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar33 + 0x1d8394))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar33 + 0x1d8394)" * (cast_expression "(code **)(pcVar33 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d8394)" ( (binary_expression "pcVar33 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14);" (assignment_expression "uVar3 = (**(code **)(pcVar33 + 0x1d8374))(*puVar14)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1d8374))(*puVar14)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar33 + 0x1d8374)" * (cast_expression "(code **)(pcVar33 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d8374)" ( (binary_expression "pcVar33 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*puVar14)" ( (pointer_expression "*puVar14" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3);" (call_expression "(**(code **)(pcVar33 + 0x1d3eec))(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3eec))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3eec)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3eec)" * (cast_expression "(code **)(pcVar33 + 0x1d3eec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3eec)" ( (binary_expression "pcVar33 + 0x1d3eec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + 0x1d3cfc) + 0x1338,uVar6,uVar3)" ( (binary_expression "*(int *)(pcVar33 + 0x1d3cfc) + 0x1338" (pointer_expression "*(int *)(pcVar33 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar33 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3cfc)" ( (binary_expression "pcVar33 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar20 = (int *)*puVar7;" (assignment_expression "piVar20 = (int *)*puVar7" identifier = (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier))) ;) }))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar20 + 8))(piVar20);" statement_identifier : (expression_statement "(**(code **)(*piVar20 + 8))(piVar20);" (call_expression "(**(code **)(*piVar20 + 8))(piVar20)" (parenthesized_expression "(**(code **)(*piVar20 + 8))" ( (pointer_expression "**(code **)(*piVar20 + 8)" * (pointer_expression "*(code **)(*piVar20 + 8)" * (cast_expression "(code **)(*piVar20 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar20 + 8)" ( (binary_expression "*piVar20 + 8" (pointer_expression "*piVar20" * identifier) + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;)) (expression_statement "piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc);" (assignment_expression "piVar20 = (int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc)" identifier = (cast_expression "(int *)(**(code **)(pcVar33 + 0x1d3dcc))(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar33 + 0x1d3dcc))(0xc)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar33 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3dcc)" ( (binary_expression "pcVar33 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "uVar6 = puVar7[2];" (assignment_expression "uVar6 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = puVar7[1];" (assignment_expression "iVar9 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar20[2] = (int)puVar8;" (assignment_expression "piVar20[2] = (int)puVar8" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar20 = 0;" (assignment_expression "*piVar20 = 0" (pointer_expression "*piVar20" * identifier) = number_literal) ;) (expression_statement "piVar20[1] = uVar30;" (assignment_expression "piVar20[1] = uVar30" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8 = (uint *)((uVar30 % uVar6) * 4);" (assignment_expression "puVar8 = (uint *)((uVar30 % uVar6) * 4)" identifier = (cast_expression "(uint *)((uVar30 % uVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar30 % uVar6) * 4)" ( (binary_expression "(uVar30 % uVar6) * 4" (parenthesized_expression "(uVar30 % uVar6)" ( (binary_expression "uVar30 % uVar6" identifier % identifier) )) * number_literal) )))) ;) (expression_statement "piVar21 = *(int **)(iVar9 + (int)puVar8);" (assignment_expression "piVar21 = *(int **)(iVar9 + (int)puVar8)" identifier = (pointer_expression "*(int **)(iVar9 + (int)puVar8)" * (cast_expression "(int **)(iVar9 + (int)puVar8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + (int)puVar8)" ( (binary_expression "iVar9 + (int)puVar8" identifier + (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (piVar21 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }" if (parenthesized_expression "(piVar21 == (int *)0x0)" ( (binary_expression "piVar21 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025eb6c:\n        puVar14 = puVar7 + 5;\n        (**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);\n        p_Var2 = p_Stack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }\n        iVar22 = *(int *)*puVar7;\n        puVar7[4] = puVar7[4] + 1;\n        pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);\n        return pp_Var4;\n      }" { (labeled_statement "LAB_0025eb6c:\n        puVar14 = puVar7 + 5;" statement_identifier : (expression_statement "puVar14 = puVar7 + 5;" (assignment_expression "puVar14 = puVar7 + 5" identifier = (binary_expression "puVar7 + 5" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1);" (call_expression "(**(code **)(pcVar33 + 0x1d45c0))(&puStack_f8,puVar14,uVar6,puVar7[4],1)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d45c0))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d45c0)" * (pointer_expression "*(code **)(pcVar33 + 0x1d45c0)" * (cast_expression "(code **)(pcVar33 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d45c0)" ( (binary_expression "pcVar33 + 0x1d45c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8,puVar14,uVar6,puVar7[4],1)" ( (pointer_expression "&puStack_f8" & identifier) , identifier , identifier , (subscript_expression "puVar7[4]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "p_Var2 = p_Stack_f4;" (assignment_expression "p_Var2 = p_Stack_f4" identifier = identifier) ;) (if_statement "if (puStack_f8._0_1_ == '\0') {\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }\n        else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }" if (parenthesized_expression "(puStack_f8._0_1_ == '\0')" ( (binary_expression "puStack_f8._0_1_ == '\0'" (field_expression "puStack_f8._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pp_Var4 = (__bucket_type *)puVar7[1];\n        }" { (expression_statement "pp_Var4 = (__bucket_type *)puVar7[1];" (assignment_expression "pp_Var4 = (__bucket_type *)puVar7[1]" identifier = (cast_expression "(__bucket_type *)puVar7[1]" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }" else (compound_statement "{\n          if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }\n          p_Var17 = (_Hash_node_base *)puVar7[3];\n          puVar7[3] = 0;\n          if (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }\n          if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }\n          puVar7[2] = p_Var2;\n          puVar7[1] = pp_Var4;\n          puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);\n        }" { (if_statement "if (p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }\n          else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }" if (parenthesized_expression "(p_Stack_f4 ==\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 "p_Stack_f4 ==\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            pp_Var4 = (__bucket_type *)(puVar7 + 7);\n            puVar7[7] = 0;\n          }" { (expression_statement "pp_Var4 = (__bucket_type *)(puVar7 + 7);" (assignment_expression "pp_Var4 = (__bucket_type *)(puVar7 + 7)" identifier = (cast_expression "(__bucket_type *)(puVar7 + 7)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 7)" ( (binary_expression "puVar7 + 7" identifier + number_literal) )))) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }" else (compound_statement "{\n            pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);\n          }" { (expression_statement "pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14);" (assignment_expression "pp_Var4 = _M_allocate_buckets(p_Stack_f4,(size_t)puVar14)" identifier = (call_expression "_M_allocate_buckets(p_Stack_f4,(size_t)puVar14)" identifier (argument_list "(p_Stack_f4,(size_t)puVar14)" ( identifier , (cast_expression "(size_t)puVar14" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) }))) (expression_statement "p_Var17 = (_Hash_node_base *)puVar7[3];" (assignment_expression "p_Var17 = (_Hash_node_base *)puVar7[3]" identifier = (cast_expression "(_Hash_node_base *)puVar7[3]" ( (type_descriptor "_Hash_node_base *" type_identifier (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 (p_Var17 != (_Hash_node_base *)0x0) {\n            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }" if (parenthesized_expression "(p_Var17 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var17 != (_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            uVar6 = 0;\n            do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);\n          }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            } while (p_Var24 != (_Hash_node_base *)0x0);" do (compound_statement "{\n              if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }\n              uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;\n              pp_Var27 = pp_Var4 + uVar15;\n              p_Var24 = p_Var17->_M_nxt;\n              if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }\n              p_Var17 = p_Var24;\n              uVar6 = uVar15;\n            }" { (if_statement "if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0) {\n                trap(7);\n              }" if (parenthesized_expression "(p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0)" ( (binary_expression "p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                             *)0x0)" 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                             *)0x0)" ( (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                             *)0x0" (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 "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2;" (assignment_expression "uVar15 = (uint)p_Var17[1]._M_nxt % (uint)p_Var2" identifier = (binary_expression "(uint)p_Var17[1]._M_nxt % (uint)p_Var2" (cast_expression "(uint)p_Var17[1]._M_nxt" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var17[1]._M_nxt" (subscript_expression "p_Var17[1]" identifier [ number_literal ]) . field_identifier)) % (cast_expression "(uint)p_Var2" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pp_Var27 = pp_Var4 + uVar15;" (assignment_expression "pp_Var27 = pp_Var4 + uVar15" identifier = (binary_expression "pp_Var4 + uVar15" identifier + identifier)) ;) (expression_statement "p_Var24 = p_Var17->_M_nxt;" (assignment_expression "p_Var24 = p_Var17->_M_nxt" identifier = (field_expression "p_Var17->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if (*pp_Var27 == (__bucket_type)0x0) {\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }\n              else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }" if (parenthesized_expression "(*pp_Var27 == (__bucket_type)0x0)" ( (binary_expression "*pp_Var27 == (__bucket_type)0x0" (pointer_expression "*pp_Var27" * identifier) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n                p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];\n                puVar7[3] = p_Var17;\n                *pp_Var27 = (__bucket_type)(puVar7 + 3);\n                if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }\n              }" { (expression_statement "p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3];" (assignment_expression "p_Var17->_M_nxt = (_Hash_node_base *)puVar7[3]" (field_expression "p_Var17->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)puVar7[3]" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar7[3] = p_Var17;" (assignment_expression "puVar7[3] = p_Var17" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pp_Var27 = (__bucket_type)(puVar7 + 3);" (assignment_expression "*pp_Var27 = (__bucket_type)(puVar7 + 3)" (pointer_expression "*pp_Var27" * identifier) = (call_expression "(__bucket_type)(puVar7 + 3)" (parenthesized_expression "(__bucket_type)" ( identifier )) (argument_list "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) ;) (if_statement "if (p_Var17->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var4[uVar6] = p_Var17;\n                }" if (parenthesized_expression "(p_Var17->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_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)) )) (compound_statement "{\n                  pp_Var4[uVar6] = p_Var17;\n                }" { (expression_statement "pp_Var4[uVar6] = p_Var17;" (assignment_expression "pp_Var4[uVar6] = p_Var17" (subscript_expression "pp_Var4[uVar6]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }" else (compound_statement "{\n                p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;\n                (*pp_Var27)->_M_nxt = p_Var17;\n                uVar15 = uVar6;\n              }" { (expression_statement "p_Var17->_M_nxt = (*pp_Var27)->_M_nxt;" (assignment_expression "p_Var17->_M_nxt = (*pp_Var27)->_M_nxt" (field_expression "p_Var17->_M_nxt" identifier -> field_identifier) = (field_expression "(*pp_Var27)->_M_nxt" (parenthesized_expression "(*pp_Var27)" ( (pointer_expression "*pp_Var27" * identifier) )) -> field_identifier)) ;) (expression_statement "(*pp_Var27)->_M_nxt = p_Var17;" (assignment_expression "(*pp_Var27)->_M_nxt = p_Var17" (field_expression "(*pp_Var27)->_M_nxt" (parenthesized_expression "(*pp_Var27)" ( (pointer_expression "*pp_Var27" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar15 = uVar6;" (assignment_expression "uVar15 = uVar6" identifier = identifier) ;) }))) (expression_statement "p_Var17 = p_Var24;" (assignment_expression "p_Var17 = p_Var24" identifier = identifier) ;) (expression_statement "uVar6 = uVar15;" (assignment_expression "uVar6 = uVar15" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var24 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var24 != (_Hash_node_base *)0x0" identifier != (cast_expression "(_Hash_node_base *)0x0" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined4 *)puVar7[1] != puVar7 + 7) {\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }" if (parenthesized_expression "((undefined4 *)puVar7[1] != puVar7 + 7)" ( (binary_expression "(undefined4 *)puVar7[1] != puVar7 + 7" (cast_expression "(undefined4 *)puVar7[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ])) != (binary_expression "puVar7 + 7" identifier + number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar33 + 0x1d3d1c))();\n          }" { (expression_statement "(**(code **)(pcVar33 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar33 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar33 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3d1c)" ( (binary_expression "pcVar33 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0) {\n            trap(7);\n          }" if (parenthesized_expression "(p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0)" ( (binary_expression "p_Var2 == (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                         *)0x0)" 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                         *)0x0)" ( (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                         *)0x0" (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 "*)0x0" * (ERROR ")" )) number_literal)) ))) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar7[2] = p_Var2;" (assignment_expression "puVar7[2] = p_Var2" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[1] = pp_Var4;" (assignment_expression "puVar7[1] = pp_Var4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2);" (assignment_expression "puVar8 = (uint *)(uVar30 % (uint)p_Var2 << 2)" identifier = (cast_expression "(uint *)(uVar30 % (uint)p_Var2 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar30 % (uint)p_Var2 << 2)" ( (binary_expression "uVar30 % (uint)p_Var2 << 2" (binary_expression "uVar30 % (uint)p_Var2" identifier % (cast_expression "(uint)p_Var2" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) )))) ;) }))) (if_statement "if (*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0) {\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }\n        else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }" if (parenthesized_expression "(*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0)" ( (binary_expression "*(int **)((int)pp_Var4 + (int)puVar8) == (int *)0x0" (pointer_expression "*(int **)((int)pp_Var4 + (int)puVar8)" * (cast_expression "(int **)((int)pp_Var4 + (int)puVar8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var4 + (int)puVar8)" ( (binary_expression "(int)pp_Var4 + (int)puVar8" (cast_expression "(int)pp_Var4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *piVar20 = puVar7[3];\n          puVar7[3] = piVar20;\n          if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }\n          *(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;\n        }" { (expression_statement "*piVar20 = puVar7[3];" (assignment_expression "*piVar20 = puVar7[3]" (pointer_expression "*piVar20" * identifier) = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = piVar20;" (assignment_expression "puVar7[3] = piVar20" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*piVar20 == 0) {\n            iVar22 = puVar7[1];\n          }\n          else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }" if (parenthesized_expression "(*piVar20 == 0)" ( (binary_expression "*piVar20 == 0" (pointer_expression "*piVar20" * identifier) == number_literal) )) (compound_statement "{\n            iVar22 = puVar7[1];\n          }" { (expression_statement "iVar22 = puVar7[1];" (assignment_expression "iVar22 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }" else (compound_statement "{\n            iVar22 = puVar7[1];\n            if (puVar7[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;\n          }" { (expression_statement "iVar22 = puVar7[1];" (assignment_expression "iVar22 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar7[2] == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              trap(7);\n            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "*(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20;" (assignment_expression "*(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4) = piVar20" (pointer_expression "*(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4)" * (cast_expression "(int **)(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4)" ( (binary_expression "iVar22 + (*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4" identifier + (binary_expression "(*(uint *)(*piVar20 + 4) % (uint)puVar7[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar20 + 4) % (uint)puVar7[2])" ( (binary_expression "*(uint *)(*piVar20 + 4) % (uint)puVar7[2]" (pointer_expression "*(uint *)(*piVar20 + 4)" * (cast_expression "(uint *)(*piVar20 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar20 + 4)" ( (binary_expression "*piVar20 + 4" (pointer_expression "*piVar20" * identifier) + number_literal) )))) % (cast_expression "(uint)puVar7[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar7[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) }))) (expression_statement "*(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3;" (assignment_expression "*(undefined4 **)(iVar22 + (int)puVar8) = puVar7 + 3" (pointer_expression "*(undefined4 **)(iVar22 + (int)puVar8)" * (cast_expression "(undefined4 **)(iVar22 + (int)puVar8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + (int)puVar8)" ( (binary_expression "iVar22 + (int)puVar8" identifier + (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "puVar7 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }" else (compound_statement "{\n          *piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);\n          **(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;\n        }" { (expression_statement "*piVar20 = **(int **)((int)pp_Var4 + (int)puVar8);" (assignment_expression "*piVar20 = **(int **)((int)pp_Var4 + (int)puVar8)" (pointer_expression "*piVar20" * identifier) = (pointer_expression "**(int **)((int)pp_Var4 + (int)puVar8)" * (pointer_expression "*(int **)((int)pp_Var4 + (int)puVar8)" * (cast_expression "(int **)((int)pp_Var4 + (int)puVar8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var4 + (int)puVar8)" ( (binary_expression "(int)pp_Var4 + (int)puVar8" (cast_expression "(int)pp_Var4" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) (expression_statement "**(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20;" (assignment_expression "**(undefined4 **)(puVar7[1] + (int)puVar8) = piVar20" (pointer_expression "**(undefined4 **)(puVar7[1] + (int)puVar8)" * (pointer_expression "*(undefined4 **)(puVar7[1] + (int)puVar8)" * (cast_expression "(undefined4 **)(puVar7[1] + (int)puVar8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7[1] + (int)puVar8)" ( (binary_expression "puVar7[1] + (int)puVar8" (subscript_expression "puVar7[1]" identifier [ number_literal ]) + (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) = identifier) ;) }))) (expression_statement "iVar22 = *(int *)*puVar7;" (assignment_expression "iVar22 = *(int *)*puVar7" identifier = (pointer_expression "*(int *)*puVar7" * (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * 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)) ;) (expression_statement "pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7);" (assignment_expression "pp_Var4 = (__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7)" identifier = (cast_expression "(__bucket_type *)(**(code **)(iVar22 + 0xc))((int *)*puVar7)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar22 + 0xc))((int *)*puVar7)" (parenthesized_expression "(**(code **)(iVar22 + 0xc))" ( (pointer_expression "**(code **)(iVar22 + 0xc)" * (pointer_expression "*(code **)(iVar22 + 0xc)" * (cast_expression "(code **)(iVar22 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) ))))) )) (argument_list "((int *)*puVar7)" ( (cast_expression "(int *)*puVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) ))))) ;) (return_statement "return pp_Var4;" return identifier ;) })) (expression_statement "uVar15 = ((int *)*piVar21)[1];" (assignment_expression "uVar15 = ((int *)*piVar21)[1]" identifier = (subscript_expression "((int *)*piVar21)[1]" (parenthesized_expression "((int *)*piVar21)" ( (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar16 = (int *)*piVar21;" (assignment_expression "piVar16 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (while_statement "while (piVar18 = piVar16, uVar30 != uVar15) {\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }" while (parenthesized_expression "(piVar18 = piVar16, uVar30 != uVar15)" ( (comma_expression "piVar18 = piVar16, uVar30 != uVar15" (assignment_expression "piVar18 = piVar16" identifier = identifier) , (binary_expression "uVar30 != uVar15" identifier != identifier)) )) (compound_statement "{\n        piVar16 = (int *)*piVar18;\n        if (piVar16 == (int *)0x0) goto LAB_0025eb6c;\n        uVar15 = piVar16[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar21 = piVar18;\n        if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;\n      }" { (expression_statement "piVar16 = (int *)*piVar18;" (assignment_expression "piVar16 = (int *)*piVar18" identifier = (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (if_statement "if (piVar16 == (int *)0x0) goto LAB_0025eb6c;" if (parenthesized_expression "(piVar16 == (int *)0x0)" ( (binary_expression "piVar16 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "uVar15 = piVar16[1];" (assignment_expression "uVar15 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar21 = piVar18;" (assignment_expression "piVar21 = piVar18" identifier = identifier) ;) (if_statement "if (uVar30 % uVar6 != uVar15 % uVar6) goto LAB_0025eb6c;" if (parenthesized_expression "(uVar30 % uVar6 != uVar15 % uVar6)" ( (binary_expression "uVar30 % uVar6 != uVar15 % uVar6" (binary_expression "uVar30 % uVar6" identifier % identifier) != (binary_expression "uVar15 % uVar6" identifier % identifier)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) })) (if_statement "if (*piVar21 == 0) goto LAB_0025eb6c;" if (parenthesized_expression "(*piVar21 == 0)" ( (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" * identifier) == number_literal) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar33 + 0x1d3d1c))(piVar20);" (call_expression "(**(code **)(pcVar33 + 0x1d3d1c))(piVar20)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar33 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3d1c)" ( (binary_expression "pcVar33 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394);" (call_expression "(**(code **)(pcVar33 + 0x1d3e54))\n                (*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3e54))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3e54)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3e54)" * (cast_expression "(code **)(pcVar33 + 0x1d3e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3e54)" ( (binary_expression "pcVar33 + 0x1d3e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar33 + 0x1d3cfc) + 0x1394)" ( (binary_expression "*(int *)(pcVar33 + 0x1d3cfc) + 0x12f0" (pointer_expression "*(int *)(pcVar33 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar33 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3cfc)" ( (binary_expression "pcVar33 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar33 + 0x1d3cfc) + 0x1394" (pointer_expression "*(int *)(pcVar33 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar33 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1d3cfc)" ( (binary_expression "pcVar33 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0025e8e0:\n      pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);" statement_identifier : (expression_statement "pcVar35 = *(code **)(pcVar33 + 0x1d3dcc);" (assignment_expression "pcVar35 = *(code **)(pcVar33 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar33 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3dcc)" ( (binary_expression "pcVar33 + 0x1d3dcc" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0025e8e4:\n      puVar11 = (uint *)(*pcVar35)(0x20);" statement_identifier : (expression_statement "puVar11 = (uint *)(*pcVar35)(0x20);" (assignment_expression "puVar11 = (uint *)(*pcVar35)(0x20)" identifier = (cast_expression "(uint *)(*pcVar35)(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar35)(0x20)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(0x20)" ( number_literal ))))) ;)) (expression_statement "p_Var2 = p_Stack_f4;" (assignment_expression "p_Var2 = p_Stack_f4" identifier = identifier) ;) (expression_statement "*puVar11 = 0;" (assignment_expression "*puVar11 = 0" (pointer_expression "*puVar11" * identifier) = number_literal) ;) (expression_statement "puVar11[1] = (uint)(puVar11 + 3);" (assignment_expression "puVar11[1] = (uint)(puVar11 + 3)" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = (call_expression "(uint)(puVar11 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar11 + 3)" ( (binary_expression "puVar11 + 3" identifier + number_literal) )))) ;) (if_statement "if (puStack_f8 == puVar31) {\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }\n      else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }" if (parenthesized_expression "(puStack_f8 == puVar31)" ( (binary_expression "puStack_f8 == puVar31" identifier == identifier) )) (compound_statement "{\n        puVar11[3] = uStack_f0;\n        puVar11[4] = uStack_ec;\n        puVar11[5] = uStack_e8;\n        puVar11[6] = uStack_e4;\n      }" { (expression_statement "puVar11[3] = uStack_f0;" (assignment_expression "puVar11[3] = uStack_f0" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[4] = uStack_ec;" (assignment_expression "puVar11[4] = uStack_ec" (subscript_expression "puVar11[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[5] = uStack_e8;" (assignment_expression "puVar11[5] = uStack_e8" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar11[6] = uStack_e4;" (assignment_expression "puVar11[6] = uStack_e4" (subscript_expression "puVar11[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }" else (compound_statement "{\n        puVar11[1] = (uint)puStack_f8;\n        puVar11[3] = uStack_f0;\n      }" { (expression_statement "puVar11[1] = (uint)puStack_f8;" (assignment_expression "puVar11[1] = (uint)puStack_f8" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_f8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar11[3] = uStack_f0;" (assignment_expression "puVar11[3] = uStack_f0" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uStack_cc = puVar8[6];" (assignment_expression "uStack_cc = puVar8[6]" identifier = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar8[4];" (assignment_expression "uVar15 = puVar8[4]" identifier = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar8[2];" (assignment_expression "uVar6 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar35 = *(code **)(pcVar33 + 0x1d45c0);" (assignment_expression "pcVar35 = *(code **)(pcVar33 + 0x1d45c0)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1d45c0)" * (cast_expression "(code **)(pcVar33 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d45c0)" ( (binary_expression "pcVar33 + 0x1d45c0" identifier + number_literal) ))))) ;) (expression_statement "p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31;" (assignment_expression "p_Stack_f4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31" 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                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar31" ( (ERROR "_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar11[2] = (uint)p_Var2;\n      uStack_f0 = uStack_f0 & 0xffffff;" (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                    *)0x0" (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 "*)0x0" * (ERROR ")" )) number_literal)) ; (assignment_expression "puVar11[2] = (uint)p_Var2" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (cast_expression "(uint)p_Var2" ( (type_descriptor "uint" type_identifier) ) identifier)) ; (assignment_expression "uStack_f0 = uStack_f0 & 0xffffff" identifier = (binary_expression "uStack_f0 & 0xffffff" identifier & number_literal)) ;) (assignment_expression "puStack_f8 = puVar31" identifier = identifier) ))) ;) (expression_statement "(*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1);" (call_expression "(*pcVar35)(acStack_e0,puVar8 + 5,uVar6,uVar15,1)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(acStack_e0,puVar8 + 5,uVar6,uVar15,1)" ( identifier , (binary_expression "puVar8 + 5" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = uStack_dc;" (assignment_expression "uVar6 = uStack_dc" identifier = identifier) ;) (if_statement "if (acStack_e0[0] == '\0') {\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }" if (parenthesized_expression "(acStack_e0[0] == '\0')" ( (binary_expression "acStack_e0[0] == '\0'" (subscript_expression "acStack_e0[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar12 = (uint *)puVar8[1];\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (int)puVar29;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar8[3];\n        puVar8[3] = (uint)puVar11;\n        *puVar11 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }\n        *puVar29 = (uint)puStack_d8;\n      }" { (expression_statement "puVar12 = (uint *)puVar8[1];" (assignment_expression "puVar12 = (uint *)puVar8[1]" identifier = (cast_expression "(uint *)puVar8[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar11[7] = (uint)unaff_s5;" (assignment_expression "puVar11[7] = (uint)unaff_s5" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29 = puVar12 + (int)puVar29;" (assignment_expression "puVar29 = puVar12 + (int)puVar29" identifier = (binary_expression "puVar12 + (int)puVar29" identifier + (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar13 = (uint *)*puVar29;" (assignment_expression "puVar13 = (uint *)*puVar29" identifier = (cast_expression "(uint *)*puVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar29" * identifier))) ;) (if_statement "if (puVar13 != (uint *)0x0) goto LAB_0025ea48;" if (parenthesized_expression "(puVar13 != (uint *)0x0)" ( (binary_expression "puVar13 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea48;" goto statement_identifier ;)) (labeled_statement "LAB_0025ea84:\n        uVar6 = puVar8[3];" statement_identifier : (expression_statement "uVar6 = puVar8[3];" (assignment_expression "uVar6 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;)) (expression_statement "puVar8[3] = (uint)puVar11;" (assignment_expression "puVar8[3] = (uint)puVar11" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar11 = uVar6;" (assignment_expression "*puVar11 = uVar6" (pointer_expression "*puVar11" * identifier) = identifier) ;) (if_statement "if (uVar6 != 0) {\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          if (puVar8[2] == 0) {\n            trap(7);\n          }\n          puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;\n        }" { (if_statement "if (puVar8[2] == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(puVar8[2] == 0)" ( (binary_expression "puVar8[2] == 0" (subscript_expression "puVar8[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11;" (assignment_expression "puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]] = (uint)puVar11" (subscript_expression "puVar12[*(uint *)(uVar6 + 0x1c) % puVar8[2]]" identifier [ (binary_expression "*(uint *)(uVar6 + 0x1c) % puVar8[2]" (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) % (subscript_expression "puVar8[2]" identifier [ number_literal ])) ]) = (cast_expression "(uint)puVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*puVar29 = (uint)puStack_d8;" (assignment_expression "*puVar29 = (uint)puStack_d8" (pointer_expression "*puVar29" * identifier) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }" else (compound_statement "{\n        if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar29 = (uint *)puVar8[3];\n        puVar8[3] = 0;\n        if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar8[2] = uVar6;\n        puVar8[1] = (uint)puVar12;\n        puVar11[7] = (uint)unaff_s5;\n        puVar29 = puVar12 + (uint)unaff_s5 % uVar6;\n        puVar13 = (uint *)*puVar29;\n        if (puVar13 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar11 = *puVar13;\n        *(uint **)*puVar29 = puVar11;\n      }" { (if_statement "if (uStack_dc == 1) {\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }\n        else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" if (parenthesized_expression "(uStack_dc == 1)" ( (binary_expression "uStack_dc == 1" identifier == number_literal) )) (compound_statement "{\n          puVar8[7] = 0;\n          puVar12 = puStack_d4;\n        }" { (expression_statement "puVar8[7] = 0;" (assignment_expression "puVar8[7] = 0" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = puStack_d4;" (assignment_expression "puVar12 = puStack_d4" identifier = identifier) ;) }) (else_clause "else {\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" else (compound_statement "{\n          puVar12 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" { (expression_statement "puVar12 = (uint *)(*pcStack_d0)(uStack_dc);" (assignment_expression "puVar12 = (uint *)(*pcStack_d0)(uStack_dc)" identifier = (cast_expression "(uint *)(*pcStack_d0)(uStack_dc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_d0)(uStack_dc)" (parenthesized_expression "(*pcStack_d0)" ( (pointer_expression "*pcStack_d0" * identifier) )) (argument_list "(uStack_dc)" ( identifier ))))) ;) }))) (expression_statement "puVar29 = (uint *)puVar8[3];" (assignment_expression "puVar29 = (uint *)puVar8[3]" identifier = (cast_expression "(uint *)puVar8[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[3] = 0;" (assignment_expression "puVar8[3] = 0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar29 != (uint *)0x0) {\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }" if (parenthesized_expression "(puVar29 != (uint *)0x0)" ( (binary_expression "puVar29 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar15 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);\n        }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          } while (puVar26 != (uint *)0x0);" do (compound_statement "{\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar29 = puVar8[3];\n            puVar8[3] = (uint)puVar29;\n            *puVar13 = (uint)puStack_d8;\n            if (*puVar29 == 0) goto LAB_0025e9a0;\n            puVar12[uVar15] = (uint)puVar29;\n            puVar29 = puVar26;\n            uVar15 = uVar36;\n          }" { (while_statement "while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar36 = puVar29[7] % uVar6;\n              puVar13 = puVar12 + uVar36;\n              puVar26 = (uint *)*puVar29;\n              if ((uint *)*puVar13 == (uint *)0x0) break;\n              *puVar29 = *(uint *)*puVar13;\n              *(uint **)*puVar13 = puVar29;\n              uVar36 = uVar15;\nLAB_0025e9a0:\n              puVar29 = puVar26;\n              uVar15 = uVar36;\n              if (puVar26 == (uint *)0x0) goto LAB_0025ea00;\n            }" { (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar36 = puVar29[7] % uVar6;" (assignment_expression "uVar36 = puVar29[7] % uVar6" identifier = (binary_expression "puVar29[7] % uVar6" (subscript_expression "puVar29[7]" identifier [ number_literal ]) % identifier)) ;) (expression_statement "puVar13 = puVar12 + uVar36;" (assignment_expression "puVar13 = puVar12 + uVar36" identifier = (binary_expression "puVar12 + uVar36" identifier + identifier)) ;) (expression_statement "puVar26 = (uint *)*puVar29;" (assignment_expression "puVar26 = (uint *)*puVar29" identifier = (cast_expression "(uint *)*puVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar29" * identifier))) ;) (if_statement "if ((uint *)*puVar13 == (uint *)0x0) break;" if (parenthesized_expression "((uint *)*puVar13 == (uint *)0x0)" ( (binary_expression "(uint *)*puVar13 == (uint *)0x0" (cast_expression "(uint *)*puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar29 = *(uint *)*puVar13;" (assignment_expression "*puVar29 = *(uint *)*puVar13" (pointer_expression "*puVar29" * identifier) = (pointer_expression "*(uint *)*puVar13" * (cast_expression "(uint *)*puVar13" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)))) ;) (expression_statement "*(uint **)*puVar13 = puVar29;" (assignment_expression "*(uint **)*puVar13 = puVar29" (pointer_expression "*(uint **)*puVar13" * (cast_expression "(uint **)*puVar13" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar13" * identifier))) = identifier) ;) (expression_statement "uVar36 = uVar15;" (assignment_expression "uVar36 = uVar15" identifier = identifier) ;) (labeled_statement "LAB_0025e9a0:\n              puVar29 = puVar26;" statement_identifier : (expression_statement "puVar29 = puVar26;" (assignment_expression "puVar29 = puVar26" identifier = identifier) ;)) (expression_statement "uVar15 = uVar36;" (assignment_expression "uVar15 = uVar36" identifier = identifier) ;) (if_statement "if (puVar26 == (uint *)0x0) goto LAB_0025ea00;" if (parenthesized_expression "(puVar26 == (uint *)0x0)" ( (binary_expression "puVar26 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea00;" goto statement_identifier ;)) })) (expression_statement "*puVar29 = puVar8[3];" (assignment_expression "*puVar29 = puVar8[3]" (pointer_expression "*puVar29" * identifier) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[3] = (uint)puVar29;" (assignment_expression "puVar8[3] = (uint)puVar29" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar13 = (uint)puStack_d8;" (assignment_expression "*puVar13 = (uint)puStack_d8" (pointer_expression "*puVar13" * identifier) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*puVar29 == 0) goto LAB_0025e9a0;" if (parenthesized_expression "(*puVar29 == 0)" ( (binary_expression "*puVar29 == 0" (pointer_expression "*puVar29" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e9a0;" goto statement_identifier ;)) (expression_statement "puVar12[uVar15] = (uint)puVar29;" (assignment_expression "puVar12[uVar15] = (uint)puVar29" (subscript_expression "puVar12[uVar15]" identifier [ identifier ]) = (cast_expression "(uint)puVar29" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29 = puVar26;" (assignment_expression "puVar29 = puVar26" identifier = identifier) ;) (expression_statement "uVar15 = uVar36;" (assignment_expression "uVar15 = uVar36" identifier = identifier) ;) }) while (parenthesized_expression "(puVar26 != (uint *)0x0)" ( (binary_expression "puVar26 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }" statement_identifier : (if_statement "if (puStack_d4 != (uint *)puVar8[1]) {\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }" if (parenthesized_expression "(puStack_d4 != (uint *)puVar8[1])" ( (binary_expression "puStack_d4 != (uint *)puVar8[1]" identifier != (cast_expression "(uint *)puVar8[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) )) (compound_statement "{\n          (**(code **)(pcVar33 + 0x1d3d1c))();\n        }" { (expression_statement "(**(code **)(pcVar33 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar33 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar33 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar33 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1d3d1c)" ( (binary_expression "pcVar33 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar8[2] = uVar6;" (assignment_expression "puVar8[2] = uVar6" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[1] = (uint)puVar12;" (assignment_expression "puVar8[1] = (uint)puVar12" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar11[7] = (uint)unaff_s5;" (assignment_expression "puVar11[7] = (uint)unaff_s5" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar29 = puVar12 + (uint)unaff_s5 % uVar6;" (assignment_expression "puVar29 = puVar12 + (uint)unaff_s5 % uVar6" identifier = (binary_expression "puVar12 + (uint)unaff_s5 % uVar6" identifier + (binary_expression "(uint)unaff_s5 % uVar6" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "puVar13 = (uint *)*puVar29;" (assignment_expression "puVar13 = (uint *)*puVar29" identifier = (cast_expression "(uint *)*puVar29" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar29" * identifier))) ;) (if_statement "if (puVar13 == (uint *)0x0) goto LAB_0025ea84;" if (parenthesized_expression "(puVar13 == (uint *)0x0)" ( (binary_expression "puVar13 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea84;" goto statement_identifier ;)) (labeled_statement "LAB_0025ea48:\n        *puVar11 = *puVar13;" statement_identifier : (expression_statement "*puVar11 = *puVar13;" (assignment_expression "*puVar11 = *puVar13" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar13" * identifier)) ;)) (expression_statement "*(uint **)*puVar29 = puVar11;" (assignment_expression "*(uint **)*puVar29 = puVar11" (pointer_expression "*(uint **)*puVar29" * (cast_expression "(uint **)*puVar29" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar29" * identifier))) = identifier) ;) }))) (expression_statement "puVar8[4] = puVar8[4] + 1;" (assignment_expression "puVar8[4] = puVar8[4] + 1" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (binary_expression "puVar8[4] + 1" (subscript_expression "puVar8[4]" identifier [ number_literal ]) + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (ERROR "}" }))
(translation_unit "int * FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}\n\n" (function_definition "int * FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)" * (function_declarator "FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)" identifier (parameter_list "(int *param_1,Workqueue *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "Workqueue *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "Task *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "uint *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint unaff_s1;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "Workqueue *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "uint *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "uint uStack_f4;" type_identifier identifier ;) (declaration "uint uStack_f0;" type_identifier identifier ;) (declaration "uint uStack_ec;" type_identifier identifier ;) (declaration "uint uStack_e8;" type_identifier identifier ;) (declaration "uint uStack_e4;" type_identifier identifier ;) (declaration "char acStack_e0 [4];" primitive_type (array_declarator "acStack_e0 [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_dc;" type_identifier identifier ;) (declaration "uint *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "uint *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "code *pcStack_d0;" type_identifier (pointer_declarator "*pcStack_d0" * identifier) ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "undefined1 *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "undefined1 **ppuStack_c0;" type_identifier (pointer_declarator "**ppuStack_c0" * (pointer_declarator "*ppuStack_c0" * identifier)) ;) (declaration "uint *puStack_bc;" type_identifier (pointer_declarator "*puStack_bc" * identifier) ;) (declaration "Workqueue *pWStack_b8;" type_identifier (pointer_declarator "*pWStack_b8" * identifier) ;) (declaration "int *piStack_b4;" primitive_type (pointer_declarator "*piStack_b4" * identifier) ;) (declaration "uint *puStack_b0;" type_identifier (pointer_declarator "*puStack_b0" * identifier) ;) (declaration "undefined1 *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "undefined1 auStack_80 [20];" type_identifier (array_declarator "auStack_80 [20]" identifier [ number_literal ]) ;) (declaration "int *piStack_6c;" primitive_type (pointer_declarator "*piStack_6c" * identifier) ;) (declaration "uint uStack_68;" type_identifier identifier ;) (declaration "int *piStack_64;" primitive_type (pointer_declarator "*piStack_64" * identifier) ;) (declaration "int *piStack_60;" primitive_type (pointer_declarator "*piStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "undefined *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (if_statement "if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }" if (parenthesized_expression "(param_1 < (int *)0x40000000)" ( (binary_expression "param_1 < (int *)0x40000000" identifier < (cast_expression "(int *)0x40000000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }" { (expression_statement "uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);" (assignment_expression "uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)((int)param_1 << 2)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" ( (pointer_expression "*(code *)PTR_operator_new_0043233c" * (cast_expression "(code *)PTR_operator_new_0043233c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)param_1 << 2)" ( (binary_expression "(int)param_1 << 2" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (expression_statement "piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" identifier = (cast_expression "(int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_00436850)" ( (pointer_expression "*(code *)PTR_memset_00436850" * (cast_expression "(code *)PTR_memset_00436850" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,0,(int)param_1 << 2)" ( identifier , number_literal , (binary_expression "(int)param_1 << 2" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "puVar25 = PTR___throw_bad_alloc_00432404;" (assignment_expression "puVar25 = PTR___throw_bad_alloc_00432404" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_bad_alloc_00432404)();" (call_expression "(*(code *)PTR___throw_bad_alloc_00432404)()" (parenthesized_expression "(*(code *)PTR___throw_bad_alloc_00432404)" ( (pointer_expression "*(code *)PTR___throw_bad_alloc_00432404" * (cast_expression "(code *)PTR___throw_bad_alloc_00432404" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar27 = puVar25 + 0x1dbfbc;" (assignment_expression "puVar27 = puVar25 + 0x1dbfbc" identifier = (binary_expression "puVar25 + 0x1dbfbc" identifier + number_literal)) ;) (expression_statement "puVar24 = *(uint **)(puVar25 + 0x1d5104);" (assignment_expression "puVar24 = *(uint **)(puVar25 + 0x1d5104)" identifier = (pointer_expression "*(uint **)(puVar25 + 0x1d5104)" * (cast_expression "(uint **)(puVar25 + 0x1d5104)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1d5104)" ( (binary_expression "puVar25 + 0x1d5104" identifier + number_literal) ))))) ;) (expression_statement "puStack_48 = puVar27;" (assignment_expression "puStack_48 = puVar27" identifier = identifier) ;) (if_statement "if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" if (parenthesized_expression "(puVar24[-0xa0c] == 0)" ( (binary_expression "puVar24[-0xa0c] == 0" (subscript_expression "puVar24[-0xa0c]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }" { (expression_statement "unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);" (assignment_expression "unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20)" identifier = (call_expression "(**(code **)(puVar25 + 0x1d4128))(0x20)" (parenthesized_expression "(**(code **)(puVar25 + 0x1d4128))" ( (pointer_expression "**(code **)(puVar25 + 0x1d4128)" * (pointer_expression "*(code **)(puVar25 + 0x1d4128)" * (cast_expression "(code **)(puVar25 + 0x1d4128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1d4128)" ( (binary_expression "puVar25 + 0x1d4128" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal )))) ;) (expression_statement "(**(code **)(puStack_48 + -0x61a0))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x61a0))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x61a0))" ( (pointer_expression "**(code **)(puStack_48 + -0x61a0)" * (pointer_expression "*(code **)(puStack_48 + -0x61a0)" * (cast_expression "(code **)(puStack_48 + -0x61a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x61a0)" ( (binary_expression "puStack_48 + -0x61a0" identifier + number_literal) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "piVar19 = (int *)*param_3;" (assignment_expression "piVar19 = (int *)*param_3" identifier = (cast_expression "(int *)*param_3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "unaff_s3 = param_1 + 1;" (assignment_expression "unaff_s3 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)param_3[1];" (assignment_expression "piVar3 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "cVar1 = *(char *)(param_1 + 1);" (assignment_expression "cVar1 = *(char *)(param_1 + 1)" identifier = (pointer_expression "*(char *)(param_1 + 1)" * (cast_expression "(char *)(param_1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(puStack_48 + -0x7e1c);" (assignment_expression "iVar15 = *(int *)(puStack_48 + -0x7e1c)" identifier = (pointer_expression "*(int *)(puStack_48 + -0x7e1c)" * (cast_expression "(int *)(puStack_48 + -0x7e1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_48 + -0x7e1c)" ( (binary_expression "puStack_48 + -0x7e1c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(uint *)(unaff_s1 + 4)" * (cast_expression "(uint *)(unaff_s1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 4)" ( (binary_expression "unaff_s1 + 4" identifier + number_literal) )))) = (binary_expression "unaff_s1 + 0x1c" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x10)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x10)" ( (binary_expression "unaff_s1 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar2 = *(undefined4 *)(iVar15 + -0x636c);" (assignment_expression "uVar2 = *(undefined4 *)(iVar15 + -0x636c)" identifier = (pointer_expression "*(undefined4 *)(iVar15 + -0x636c)" * (cast_expression "(undefined4 *)(iVar15 + -0x636c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x636c)" ( (binary_expression "iVar15 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 8) = 1;" (assignment_expression "*(undefined4 *)(unaff_s1 + 8) = 1" (pointer_expression "*(undefined4 *)(unaff_s1 + 8)" * (cast_expression "(undefined4 *)(unaff_s1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 8)" ( (binary_expression "unaff_s1 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x1c)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x1c)" ( (binary_expression "unaff_s1 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0xc)" * (cast_expression "(undefined4 *)(unaff_s1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0xc)" ( (binary_expression "unaff_s1 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x18)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x18)" ( (binary_expression "unaff_s1 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar24[-0xa0c] = unaff_s1;" (assignment_expression "puVar24[-0xa0c] = unaff_s1" (subscript_expression "puVar24[-0xa0c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*param_1 = (int)param_3;" (assignment_expression "*param_1 = (int)param_3" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x14) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x14)" * (cast_expression "(undefined4 *)(unaff_s1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s1 + 0x14)" ( (binary_expression "unaff_s1 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s2 = param_3;" (assignment_expression "unaff_s2 = param_3" identifier = identifier) ;) (expression_statement "unaff_s4 = param_2;" (assignment_expression "unaff_s4 = param_2" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (expression_statement "puVar27 = puStack_48;" (assignment_expression "puVar27 = puStack_48" identifier = identifier) ;) (if_statement "if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }" { (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);" (assignment_expression "piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" identifier = (cast_expression "(int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" ( (binary_expression "param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "((int)piVar3 - (int)piVar19 >> 2) * -0x49249249" (parenthesized_expression "((int)piVar3 - (int)piVar19 >> 2)" ( (binary_expression "(int)piVar3 - (int)piVar19 >> 2" (binary_expression "(int)piVar3 - (int)piVar19" (cast_expression "(int)piVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "param_1[2] = (int)piVar4;" (assignment_expression "param_1[2] = (int)piVar4" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }" if (parenthesized_expression "(piVar19 != piVar3)" ( (binary_expression "piVar19 != piVar3" identifier != identifier) )) (compound_statement "{\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }" { (expression_statement "iVar15 = *(int *)(puStack_48 + -0x7fd8);" (assignment_expression "iVar15 = *(int *)(puStack_48 + -0x7fd8)" identifier = (pointer_expression "*(int *)(puStack_48 + -0x7fd8)" * (cast_expression "(int *)(puStack_48 + -0x7fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_48 + -0x7fd8)" ( (binary_expression "puStack_48 + -0x7fd8" identifier + number_literal) ))))) ;) (do_statement "do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);" do (compound_statement "{\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        }" { (expression_statement "iVar20 = *piVar19;" (assignment_expression "iVar20 = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar19 = piVar19 + 7;" (assignment_expression "piVar19 = piVar19 + 7" identifier = (binary_expression "piVar19 + 7" identifier + number_literal)) ;) (expression_statement "pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);" (assignment_expression "pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" identifier = (cast_expression "(Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puStack_48 + -0x7e94))(0x2c)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e94))" ( (pointer_expression "**(code **)(puStack_48 + -0x7e94)" * (pointer_expression "*(code **)(puStack_48 + -0x7e94)" * (cast_expression "(code **)(puStack_48 + -0x7e94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7e94)" ( (binary_expression "puStack_48 + -0x7e94" identifier + number_literal) ))))) )) (argument_list "(0x2c)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" * (cast_expression "(undefined4 *)(pTVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(Task **)(pTVar5 + 8) = pTVar5 + 0x10;" (assignment_expression "*(Task **)(pTVar5 + 8) = pTVar5 + 0x10" (pointer_expression "*(Task **)(pTVar5 + 8)" * (cast_expression "(Task **)(pTVar5 + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar5 + 8)" ( (binary_expression "pTVar5 + 8" identifier + number_literal) )))) = (binary_expression "pTVar5 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pTVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 0xc)" * (cast_expression "(undefined4 *)(pTVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 0xc)" ( (binary_expression "pTVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pTVar5[0x10] = (Task)0x0;" (assignment_expression "pTVar5[0x10] = (Task)0x0" (subscript_expression "pTVar5[0x10]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "pTVar5[0x20] = (Task)0x0;" (assignment_expression "pTVar5[0x20] = (Task)0x0" (subscript_expression "pTVar5[0x20]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "*(int *)pTVar5 = iVar15 + -0x6d48;" (assignment_expression "*(int *)pTVar5 = iVar15 + -0x6d48" (pointer_expression "*(int *)pTVar5" * (cast_expression "(int *)pTVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "iVar15 + -0x6d48" identifier + number_literal)) ;) (expression_statement "*(int *)(pTVar5 + 0x24) = iVar20;" (assignment_expression "*(int *)(pTVar5 + 0x24) = iVar20" (pointer_expression "*(int *)(pTVar5 + 0x24)" * (cast_expression "(int *)(pTVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 0x24)" ( (binary_expression "pTVar5 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(pTVar5 + 0x28) = unaff_s3;" (assignment_expression "*(int **)(pTVar5 + 0x28) = unaff_s3" (pointer_expression "*(int **)(pTVar5 + 0x28)" * (cast_expression "(int **)(pTVar5 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar5 + 0x28)" ( (binary_expression "pTVar5 + 0x28" identifier + number_literal) )))) = identifier) ;) (labeled_statement "gold::Workqueue::queue(param_2,pTVar5);" statement_identifier : (ERROR ":" :) (labeled_statement "Workqueue::queue(param_2,pTVar5);" statement_identifier : (ERROR ":" :) (expression_statement "queue(param_2,pTVar5);" (call_expression "queue(param_2,pTVar5)" identifier (argument_list "(param_2,pTVar5)" ( identifier , identifier ))) ;))) (expression_statement "piVar4 = (int *)param_3[1];" (assignment_expression "piVar4 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar4 != piVar19)" ( (binary_expression "piVar4 != piVar19" identifier != identifier) )) ;) })) (return_statement "return piVar4;" return identifier ;) })) }) (else_clause "else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" else (compound_statement "{\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" { (expression_statement "(**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);" (call_expression "(**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8)" (parenthesized_expression "(**(code **)(puVar25 + 0x1d41b0))" ( (pointer_expression "**(code **)(puVar25 + 0x1d41b0)" * (pointer_expression "*(code **)(puVar25 + 0x1d41b0)" * (cast_expression "(code **)(puVar25 + 0x1d41b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x1d41b0)" ( (binary_expression "puVar25 + 0x1d41b0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8)" ( (binary_expression "*(int *)(puVar25 + 0x1d4058) + 0x12f0" (pointer_expression "*(int *)(puVar25 + 0x1d4058)" * (cast_expression "(int *)(puVar25 + 0x1d4058)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1d4058)" ( (binary_expression "puVar25 + 0x1d4058" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar25 + 0x1d4058) + 0x13a8" (pointer_expression "*(int *)(puVar25 + 0x1d4058)" * (cast_expression "(int *)(puVar25 + 0x1d4058)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x1d4058)" ( (binary_expression "puVar25 + 0x1d4058" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);" (assignment_expression "piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" identifier = (cast_expression "(int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" ( (binary_expression "*(int *)(puVar27 + -0x7fc4) + 0x48a0" (pointer_expression "*(int *)(puVar27 + -0x7fc4)" * (cast_expression "(int *)(puVar27 + -0x7fc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x7fc4)" ( (binary_expression "puVar27 + -0x7fc4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);" (call_expression "(**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398)" (parenthesized_expression "(**(code **)(puVar27 + -0x7e0c))" ( (pointer_expression "**(code **)(puVar27 + -0x7e0c)" * (pointer_expression "*(code **)(puVar27 + -0x7e0c)" * (cast_expression "(code **)(puVar27 + -0x7e0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + -0x7e0c)" ( (binary_expression "puVar27 + -0x7e0c" identifier + number_literal) ))))) )) (argument_list "(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398)" ( identifier , number_literal , (binary_expression "*(int *)(puVar27 + -0x7f64) + 0x1398" (pointer_expression "*(int *)(puVar27 + -0x7f64)" * (cast_expression "(int *)(puVar27 + -0x7f64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + -0x7f64)" ( (binary_expression "puVar27 + -0x7f64" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar15 = 0x20;" (assignment_expression "iVar15 = 0x20" identifier = number_literal) ;) (expression_statement "(**(code **)(puStack_48 + -0x7e10))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x7e10))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e10))" ( (pointer_expression "**(code **)(puStack_48 + -0x7e10)" * (pointer_expression "*(code **)(puStack_48 + -0x7e10)" * (cast_expression "(code **)(puStack_48 + -0x7e10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7e10)" ( (binary_expression "puStack_48 + -0x7e10" identifier + number_literal) ))))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "pcVar26 = *(code **)(puStack_48 + -0x7f78);" (assignment_expression "pcVar26 = *(code **)(puStack_48 + -0x7f78)" identifier = (pointer_expression "*(code **)(puStack_48 + -0x7f78)" * (cast_expression "(code **)(puStack_48 + -0x7f78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7f78)" ( (binary_expression "puStack_48 + -0x7f78" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = FUN_0025e3dc;" (assignment_expression "pcVar28 = FUN_0025e3dc" identifier = identifier) ;) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_88 = auStack_80;" (assignment_expression "puStack_88 = auStack_80" identifier = identifier) ;) (expression_statement "piStack_6c = piVar19;" (assignment_expression "piStack_6c = piVar19" identifier = identifier) ;) (expression_statement "uStack_68 = unaff_s1;" (assignment_expression "uStack_68 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_64 = unaff_s2;" (assignment_expression "piStack_64 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_60 = unaff_s3;" (assignment_expression "piStack_60 = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar28;" (assignment_expression "pcStack_5c = pcVar28" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d40ac))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d40ac)" * (pointer_expression "*(code **)(pcVar26 + 0x1d40ac)" * (cast_expression "(code **)(pcVar26 + 0x1d40ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d40ac)" ( (binary_expression "pcVar26 + 0x1d40ac" identifier + number_literal) ))))) )) (argument_list "(&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0)" ( (pointer_expression "&puStack_88" & identifier) , (binary_expression "*(int *)(pcVar26 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(pcVar26 + 0x1d3e90)" * (cast_expression "(int *)(pcVar26 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3e90)" ( (binary_expression "pcVar26 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar26 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(pcVar26 + 0x1d3e90)" * (cast_expression "(int *)(pcVar26 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3e90)" ( (binary_expression "pcVar26 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar22 = *(uint **)(iVar15 + 0x24);" (assignment_expression "puVar22 = *(uint **)(iVar15 + 0x24)" identifier = (pointer_expression "*(uint **)(iVar15 + 0x24)" * (cast_expression "(uint **)(iVar15 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0x24)" ( (binary_expression "iVar15 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);" (assignment_expression "uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d83a0))(puVar22)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d83a0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d83a0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d83a0)" * (cast_expression "(code **)(pcVar26 + 0x1d83a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d83a0)" ( (binary_expression "pcVar26 + 0x1d83a0" identifier + number_literal) ))))) )) (argument_list "(puVar22)" ( identifier )))) ;) (if_statement "if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }" if (parenthesized_expression "(uVar6 <= 0x7fffffffU - iStack_84)" ( (binary_expression "uVar6 <= 0x7fffffffU - iStack_84" identifier <= (binary_expression "0x7fffffffU - iStack_84" number_literal - identifier)) )) (compound_statement "{\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }" { (expression_statement "piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4874))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4874)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4874)" * (cast_expression "(code **)(pcVar26 + 0x1d4874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4874)" ( (binary_expression "pcVar26 + 0x1d4874" identifier + number_literal) ))))) )) (argument_list "(&puStack_88,puVar22,uVar6)" ( (pointer_expression "&puStack_88" & identifier) , identifier , identifier ))))) ;) (expression_statement "piVar4 = piVar19 + 2;" (assignment_expression "piVar4 = piVar19 + 2" identifier = (binary_expression "piVar19 + 2" identifier + number_literal)) ;) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" * identifier) = (cast_expression "(int)(piVar3 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar3 + 2)" ( (binary_expression "piVar3 + 2" identifier + number_literal) )))) ;) (if_statement "if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" if (parenthesized_expression "((int *)*piVar19 == piVar4)" ( (binary_expression "(int *)*piVar19 == piVar4" (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier)) == identifier) )) (compound_statement "{\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }" { (expression_statement "iVar16 = piVar19[3];" (assignment_expression "iVar16 = piVar19[3]" identifier = (subscript_expression "piVar19[3]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = piVar19[4];" (assignment_expression "iVar20 = piVar19[4]" identifier = (subscript_expression "piVar19[4]" identifier [ number_literal ])) ;) (expression_statement "iVar15 = piVar19[5];" (assignment_expression "iVar15 = piVar19[5]" identifier = (subscript_expression "piVar19[5]" identifier [ number_literal ])) ;) (expression_statement "piVar3[2] = *piVar4;" (assignment_expression "piVar3[2] = *piVar4" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar3[3] = iVar16;" (assignment_expression "piVar3[3] = iVar16" (subscript_expression "piVar3[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[4] = iVar20;" (assignment_expression "piVar3[4] = iVar20" (subscript_expression "piVar3[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar3[5] = iVar15;" (assignment_expression "piVar3[5] = iVar15" (subscript_expression "piVar3[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" else (compound_statement "{\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" { (expression_statement "*piVar3 = *piVar19;" (assignment_expression "*piVar3 = *piVar19" (pointer_expression "*piVar3" * identifier) = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "piVar3[2] = piVar19[2];" (assignment_expression "piVar3[2] = piVar19[2]" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (subscript_expression "piVar19[2]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar3[1] = piVar19[1];" (assignment_expression "piVar3[1] = piVar19[1]" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar19 = (int)piVar4;" (assignment_expression "*piVar19 = (int)piVar4" (pointer_expression "*piVar19" * identifier) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar19 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar19 + 2)" * (cast_expression "(undefined1 *)(piVar19 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar19 + 2)" ( (binary_expression "piVar19 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3eb0))();" (call_expression "(**(code **)(pcVar26 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eb0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3eb0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3eb0)" * (cast_expression "(code **)(pcVar26 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3eb0)" ( (binary_expression "pcVar26 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240" identifier = (binary_expression "*(int *)(pcVar26 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(pcVar26 + 0x1d3fd8)" * (cast_expression "(int *)(pcVar26 + 0x1d3fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3fd8)" ( (binary_expression "pcVar26 + 0x1d3fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d40a4))();" (call_expression "(**(code **)(pcVar26 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d40a4))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d40a4)" * (pointer_expression "*(code **)(pcVar26 + 0x1d40a4)" * (cast_expression "(code **)(pcVar26 + 0x1d40a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d40a4)" ( (binary_expression "pcVar26 + 0x1d40a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }" if (parenthesized_expression "(puStack_88 != auStack_80)" ( (binary_expression "puStack_88 != auStack_80" identifier != identifier) )) (compound_statement "{\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);" (call_expression "(**(code **)(pcVar26 + 0x1d3eb0))(puStack_88)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eb0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3eb0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3eb0)" * (cast_expression "(code **)(pcVar26 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3eb0)" ( (binary_expression "pcVar26 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "(puStack_88)" ( identifier ))) ;) })) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x1d3e7c)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d3e7c)" * (cast_expression "(code **)(pcVar26 + 0x1d3e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3e7c)" ( (binary_expression "pcVar26 + 0x1d3e7c" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" * (cast_expression "(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" ( (binary_expression "*(int *)(pcVar26 + 0x1d4da8) + -0x2830" (pointer_expression "*(int *)(pcVar26 + 0x1d4da8)" * (cast_expression "(int *)(pcVar26 + 0x1d4da8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d4da8)" ( (binary_expression "pcVar26 + 0x1d4da8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar23 = *(uint *)(iVar20 + 0x24);" (assignment_expression "uVar23 = *(uint *)(iVar20 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar20 + 0x24)" * (cast_expression "(uint *)(iVar20 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x24)" ( (binary_expression "iVar20 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iStack_c8 = iVar15;" (assignment_expression "iStack_c8 = iVar15" identifier = identifier) ;) (expression_statement "puStack_c4 = auStack_80;" (assignment_expression "puStack_c4 = auStack_80" identifier = identifier) ;) (expression_statement "ppuStack_c0 = &puStack_88;" (assignment_expression "ppuStack_c0 = &puStack_88" identifier = (pointer_expression "&puStack_88" & identifier)) ;) (expression_statement "puStack_bc = puVar22;" (assignment_expression "puStack_bc = puVar22" identifier = identifier) ;) (expression_statement "pWStack_b8 = unaff_s4;" (assignment_expression "pWStack_b8 = unaff_s4" identifier = identifier) ;) (expression_statement "piStack_b4 = unaff_s5;" (assignment_expression "piStack_b4 = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_b0 = puVar24;" (assignment_expression "puStack_b0 = puVar24" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);" (call_expression "(**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21)" (parenthesized_expression "(**(code **)(*(int *)*puVar21 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar21 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar21 + 8)" * (cast_expression "(code **)(*(int *)*puVar21 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar21 + 8)" ( (binary_expression "*(int *)*puVar21 + 8" (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar21)" ( (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)) ))) ;) (expression_statement "uVar6 = puVar21[2];" (assignment_expression "uVar6 = puVar21[2]" identifier = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);" (assignment_expression "piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" identifier = (pointer_expression "*(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" * (cast_expression "(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21[1] + (uVar23 % uVar6) * 4)" ( (binary_expression "puVar21[1] + (uVar23 % uVar6) * 4" (subscript_expression "puVar21[1]" identifier [ number_literal ]) + (binary_expression "(uVar23 % uVar6) * 4" (parenthesized_expression "(uVar23 % uVar6)" ( (binary_expression "uVar23 % uVar6" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }" if (parenthesized_expression "(piVar3 != (int *)0x0)" ( (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }" { (expression_statement "uVar12 = ((int *)*piVar3)[1];" (assignment_expression "uVar12 = ((int *)*piVar3)[1]" identifier = (subscript_expression "((int *)*piVar3)[1]" (parenthesized_expression "((int *)*piVar3)" ( (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar19 = (int *)*piVar3;" (assignment_expression "piVar19 = (int *)*piVar3" identifier = (cast_expression "(int *)*piVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (do_statement "do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);" do (compound_statement "{\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    }" { (expression_statement "piVar4 = piVar19;" (assignment_expression "piVar4 = piVar19" identifier = identifier) ;) (if_statement "if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }" if (parenthesized_expression "(uVar23 == uVar12)" ( (binary_expression "uVar23 == uVar12" identifier == identifier) )) (compound_statement "{\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }" { (expression_statement "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);" (assignment_expression "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar21 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar21 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar21 + 0xc)" ( (binary_expression "*(int *)*puVar21 + 0xc" (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }" if (parenthesized_expression "((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0))" ( (binary_expression "(*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)" (parenthesized_expression "(*piVar3 != 0)" ( (binary_expression "*piVar3 != 0" (pointer_expression "*piVar3" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar3 + 8) != 0)" ( (binary_expression "*(int *)(*piVar3 + 8) != 0" (pointer_expression "*(int *)(*piVar3 + 8)" * (cast_expression "(int *)(*piVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + 8)" ( (binary_expression "*piVar3 + 8" (pointer_expression "*piVar3" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }" { (expression_statement "piVar3 = (int *)(*pcVar28)();" (assignment_expression "piVar3 = (int *)(*pcVar28)()" identifier = (cast_expression "(int *)(*pcVar28)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (goto_statement "goto LAB_0025e698;" goto statement_identifier ;) })) (expression_statement "piVar19 = (int *)*piVar4;" (assignment_expression "piVar19 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (if_statement "if (piVar19 == (int *)0x0) break;" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = piVar19[1];" (assignment_expression "uVar12 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar3 = piVar4;" (assignment_expression "piVar3 = piVar4" identifier = identifier) ;) }) while (parenthesized_expression "(uVar23 % uVar6 == uVar12 % uVar6)" ( (binary_expression "uVar23 % uVar6 == uVar12 % uVar6" (binary_expression "uVar23 % uVar6" identifier % identifier) == (binary_expression "uVar12 % uVar6" identifier % identifier)) )) ;) })) (expression_statement "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);" (assignment_expression "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar21 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar21 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar21 + 0xc)" ( (binary_expression "*(int *)*puVar21 + 0xc" (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0025e698:\n  (*pcVar28)();" statement_identifier : (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);" (assignment_expression "puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" identifier = (cast_expression "(uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "puStack_d4 = puVar7 + 7;" (assignment_expression "puStack_d4 = puVar7 + 7" identifier = (binary_expression "puVar7 + 7" identifier + number_literal)) ;) (expression_statement "*puVar7 = uVar23;" (assignment_expression "*puVar7 = uVar23" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar15 = *(int *)(pcVar26 + 0x1d3e44);" (assignment_expression "iVar15 = *(int *)(pcVar26 + 0x1d3e44)" identifier = (pointer_expression "*(int *)(pcVar26 + 0x1d3e44)" * (cast_expression "(int *)(pcVar26 + 0x1d3e44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3e44)" ( (binary_expression "pcVar26 + 0x1d3e44" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d8260);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d8260)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d8260)" * (cast_expression "(code **)(pcVar26 + 0x1d8260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8260)" ( (binary_expression "pcVar26 + 0x1d8260" identifier + number_literal) ))))) ;) (expression_statement "puVar7[1] = (uint)puStack_d4;" (assignment_expression "puVar7[1] = (uint)puStack_d4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = *(uint *)(iVar15 + -0x636c);" (assignment_expression "uVar6 = *(uint *)(iVar15 + -0x636c)" identifier = (pointer_expression "*(uint *)(iVar15 + -0x636c)" * (cast_expression "(uint *)(iVar15 + -0x636c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x636c)" ( (binary_expression "iVar15 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (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[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[5] = uVar6;" (assignment_expression "puVar7[5] = uVar6" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar15 = (*pcVar28)(uVar23);" (assignment_expression "iVar15 = (*pcVar28)(uVar23)" identifier = (call_expression "(*pcVar28)(uVar23)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(uVar23)" ( identifier )))) ;) (if_statement "if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }" { (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))()" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d8394))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8394)" * (cast_expression "(code **)(pcVar26 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8394)" ( (binary_expression "pcVar26 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar3 == 2) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar3 == 2)" ( (binary_expression "*piVar3 == 2" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (if_statement "if (*piVar3 == 0x14) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar3 == 0x14)" ( (binary_expression "*piVar3 == 0x14" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (expression_statement "puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" identifier = (cast_expression "(uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d82a8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d82a8)" * (pointer_expression "*(code **)(pcVar26 + 0x1d82a8)" * (cast_expression "(code **)(pcVar26 + 0x1d82a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d82a8)" ( (binary_expression "pcVar26 + 0x1d82a8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" ( (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1318" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);" (assignment_expression "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*piVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8374)" * (cast_expression "(code **)(pcVar26 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8374)" ( (binary_expression "pcVar26 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*piVar3)" ( (pointer_expression "*piVar3" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);" (call_expression "(**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4814))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4814)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4814)" * (cast_expression "(code **)(pcVar26 + 0x1d4814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4814)" ( (binary_expression "pcVar26 + 0x1d4814" identifier + number_literal) ))))) )) (argument_list "(puVar22,uVar6,uVar2)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (goto_statement "goto LAB_0025e810;" goto statement_identifier ;) })) (expression_statement "puStack_d8 = puVar7 + 3;" (assignment_expression "puStack_d8 = puVar7 + 3" identifier = (binary_expression "puVar7 + 3" identifier + number_literal)) ;) (expression_statement "puVar24 = &uStack_f0;" (assignment_expression "puVar24 = &uStack_f0" identifier = (pointer_expression "&uStack_f0" & identifier)) ;) (expression_statement "pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" identifier = (cast_expression "(code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" ( (binary_expression "*(int *)(pcVar26 + 0x1d71a4) + -0x1e58" (pointer_expression "*(int *)(pcVar26 + 0x1d71a4)" * (cast_expression "(int *)(pcVar26 + 0x1d71a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d71a4)" ( (binary_expression "pcVar26 + 0x1d71a4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" statement_identifier : (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d822c)" * (cast_expression "(code **)(pcVar26 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d822c)" ( (binary_expression "pcVar26 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;)) (if_statement "if (iVar20 == 0) goto LAB_0025e7f8;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025e7f8;" goto statement_identifier ;)) (do_statement "do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  }" { (expression_statement "iVar20 = iVar20 + 0x13;" (assignment_expression "iVar20 = iVar20 + 0x13" identifier = (binary_expression "iVar20 + 0x13" identifier + number_literal)) ;) (expression_statement "puStack_f8 = puVar24;" (assignment_expression "puStack_f8 = puVar24" identifier = identifier) ;) (expression_statement "iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);" (assignment_expression "iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d820c))(iVar20)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d820c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d820c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d820c)" * (cast_expression "(code **)(pcVar26 + 0x1d820c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d820c)" ( (binary_expression "pcVar26 + 0x1d820c" identifier + number_literal) ))))) )) (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);" (call_expression "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3f18))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3f18)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3f18)" * (cast_expression "(code **)(pcVar26 + 0x1d3f18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3f18)" ( (binary_expression "pcVar26 + 0x1d3f18" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8,iVar20,iVar20 + iVar16,0)" ( (pointer_expression "&puStack_f8" & identifier) , identifier , (binary_expression "iVar20 + iVar16" identifier + identifier) , number_literal ))) ;) (expression_statement "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);" (assignment_expression "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4af0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4af0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4af0)" * (cast_expression "(code **)(pcVar26 + 0x1d4af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4af0)" ( (binary_expression "pcVar26 + 0x1d4af0" identifier + number_literal) ))))) )) (argument_list "(puStack_f8,uStack_f4,0xc70f6907)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar7[2] == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);" (assignment_expression "puVar22 = (uint *)((uint)unaff_s5 % puVar7[2])" identifier = (cast_expression "(uint *)((uint)unaff_s5 % puVar7[2])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s5 % puVar7[2])" ( (binary_expression "(uint)unaff_s5 % puVar7[2]" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % (subscript_expression "puVar7[2]" identifier [ number_literal ])) )))) ;) (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4f88))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d4f88)" * (pointer_expression "*(code **)(pcVar26 + 0x1d4f88)" * (cast_expression "(code **)(pcVar26 + 0x1d4f88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d4f88)" ( (binary_expression "pcVar26 + 0x1d4f88" identifier + number_literal) ))))) )) (argument_list "(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" ( (binary_expression "puVar7 + 1" identifier + number_literal) , identifier , (pointer_expression "&puStack_f8" & identifier) , identifier ))))) ;) (if_statement "if (piVar3 == (int *)0x0) goto LAB_0025e8e0;" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025e8e0;" goto statement_identifier ;)) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar3 == 0) goto LAB_0025e8e4;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e8e4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }" { (if_statement "if (puStack_f8 == puVar24) goto LAB_0025e720;" if (parenthesized_expression "(puStack_f8 == puVar24)" ( (binary_expression "puStack_f8 == puVar24" identifier == identifier) )) (goto_statement "goto LAB_0025e720;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d822c)" * (cast_expression "(code **)(pcVar26 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d822c)" ( (binary_expression "pcVar26 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) break;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);" statement_identifier : (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d81c8))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d81c8))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d81c8)" * (pointer_expression "*(code **)(pcVar26 + 0x1d81c8)" * (cast_expression "(code **)(pcVar26 + 0x1d81c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d81c8)" ( (binary_expression "pcVar26 + 0x1d81c8" identifier + number_literal) ))))) )) (argument_list "(iVar15)" ( identifier )))) ;)) (if_statement "if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }" { (labeled_statement "LAB_0025e80c:\n        piVar3 = (int *)*puVar21;" statement_identifier : (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;)) }) (else_clause "else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" else (compound_statement "{\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" { (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8394)" * (cast_expression "(code **)(pcVar26 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8394)" ( (binary_expression "pcVar26 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);" (assignment_expression "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*puVar11)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar26 + 0x1d8374)" * (cast_expression "(code **)(pcVar26 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d8374)" ( (binary_expression "pcVar26 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*puVar11)" ( (pointer_expression "*puVar11" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);" (call_expression "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eec))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3eec)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3eec)" * (cast_expression "(code **)(pcVar26 + 0x1d3eec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3eec)" ( (binary_expression "pcVar26 + 0x1d3eec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2)" ( (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1338" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" identifier = (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) }))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);" statement_identifier : (expression_statement "(**(code **)(*piVar3 + 8))(piVar3);" (call_expression "(**(code **)(*piVar3 + 8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 8))" ( (pointer_expression "**(code **)(*piVar3 + 8)" * (pointer_expression "*(code **)(*piVar3 + 8)" * (cast_expression "(code **)(*piVar3 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 8)" ( (binary_expression "*piVar3 + 8" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;)) (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "uVar6 = puVar21[2];" (assignment_expression "uVar6 = puVar21[2]" identifier = (subscript_expression "puVar21[2]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = puVar21[1];" (assignment_expression "iVar20 = puVar21[1]" identifier = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        trap(7);\n      }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar3[2] = (int)puVar7;" (assignment_expression "piVar3[2] = (int)puVar7" (subscript_expression "piVar3[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" * identifier) = number_literal) ;) (expression_statement "piVar3[1] = uVar23;" (assignment_expression "piVar3[1] = uVar23" (subscript_expression "piVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (uint *)((uVar23 % uVar6) * 4);" (assignment_expression "puVar7 = (uint *)((uVar23 % uVar6) * 4)" identifier = (cast_expression "(uint *)((uVar23 % uVar6) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar23 % uVar6) * 4)" ( (binary_expression "(uVar23 % uVar6) * 4" (parenthesized_expression "(uVar23 % uVar6)" ( (binary_expression "uVar23 % uVar6" identifier % identifier) )) * number_literal) )))) ;) (expression_statement "piVar19 = *(int **)(iVar20 + (int)puVar7);" (assignment_expression "piVar19 = *(int **)(iVar20 + (int)puVar7)" identifier = (pointer_expression "*(int **)(iVar20 + (int)puVar7)" * (cast_expression "(int **)(iVar20 + (int)puVar7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + (int)puVar7)" ( (binary_expression "iVar20 + (int)puVar7" identifier + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }" { (labeled_statement "LAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);" statement_identifier : (expression_statement "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);" (call_expression "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d45c0))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d45c0)" * (pointer_expression "*(code **)(pcVar26 + 0x1d45c0)" * (cast_expression "(code **)(pcVar26 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d45c0)" ( (binary_expression "pcVar26 + 0x1d45c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1)" ( (pointer_expression "&puStack_f8" & identifier) , (binary_expression "puVar21 + 5" identifier + number_literal) , identifier , (subscript_expression "puVar21[4]" identifier [ number_literal ]) , number_literal ))) ;)) (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" identifier = identifier) ;) (if_statement "if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" if (parenthesized_expression "(puStack_f8._0_1_ == '\0')" ( (binary_expression "puStack_f8._0_1_ == '\0'" (field_expression "puStack_f8._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          puVar11 = (undefined4 *)puVar21[1];\n        }" { (expression_statement "puVar11 = (undefined4 *)puVar21[1];" (assignment_expression "puVar11 = (undefined4 *)puVar21[1]" identifier = (cast_expression "(undefined4 *)puVar21[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" else (compound_statement "{\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" { (if_statement "if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" if (parenthesized_expression "(uStack_f4 == 1)" ( (binary_expression "uStack_f4 == 1" identifier == number_literal) )) (compound_statement "{\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }" { (expression_statement "puVar11 = puVar21 + 7;" (assignment_expression "puVar11 = puVar21 + 7" identifier = (binary_expression "puVar21 + 7" identifier + number_literal)) ;) (expression_statement "puVar21[7] = 0;" (assignment_expression "puVar21[7] = 0" (subscript_expression "puVar21[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" else (compound_statement "{\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" { (expression_statement "puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);" (assignment_expression "puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4)" identifier = (cast_expression "(undefined4 *)FUN_0025e1a8(uStack_f4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025e1a8(uStack_f4)" identifier (argument_list "(uStack_f4)" ( identifier ))))) ;) }))) (expression_statement "piVar19 = (int *)puVar21[3];" (assignment_expression "piVar19 = (int *)puVar21[3]" identifier = (cast_expression "(int *)puVar21[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar21[3] = 0;" (assignment_expression "puVar21[3] = 0" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }" if (parenthesized_expression "(piVar19 != (int *)0x0)" ( (binary_expression "piVar19 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);" do (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            }" { (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar17 = (uint)piVar19[1] % uVar6;" (assignment_expression "uVar17 = (uint)piVar19[1] % uVar6" identifier = (binary_expression "(uint)piVar19[1] % uVar6" (cast_expression "(uint)piVar19[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar19[1]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "puVar14 = puVar11 + uVar17;" (assignment_expression "puVar14 = puVar11 + uVar17" identifier = (binary_expression "puVar11 + uVar17" identifier + identifier)) ;) (expression_statement "piVar4 = (int *)*piVar19;" (assignment_expression "piVar4 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (if_statement "if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" if (parenthesized_expression "((int *)*puVar14 == (int *)0x0)" ( (binary_expression "(int *)*puVar14 == (int *)0x0" (cast_expression "(int *)*puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }" { (expression_statement "*piVar19 = puVar21[3];" (assignment_expression "*piVar19 = puVar21[3]" (pointer_expression "*piVar19" * identifier) = (subscript_expression "puVar21[3]" identifier [ number_literal ])) ;) (expression_statement "puVar21[3] = piVar19;" (assignment_expression "puVar21[3] = piVar19" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar14 = puVar21 + 3;" (assignment_expression "*puVar14 = puVar21 + 3" (pointer_expression "*puVar14" * identifier) = (binary_expression "puVar21 + 3" identifier + number_literal)) ;) (if_statement "if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }" if (parenthesized_expression "(*piVar19 != 0)" ( (binary_expression "*piVar19 != 0" (pointer_expression "*piVar19" * identifier) != number_literal) )) (compound_statement "{\n                  puVar11[uVar12] = piVar19;\n                }" { (expression_statement "puVar11[uVar12] = piVar19;" (assignment_expression "puVar11[uVar12] = piVar19" (subscript_expression "puVar11[uVar12]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" else (compound_statement "{\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" { (expression_statement "*piVar19 = *(int *)*puVar14;" (assignment_expression "*piVar19 = *(int *)*puVar14" (pointer_expression "*piVar19" * identifier) = (pointer_expression "*(int *)*puVar14" * (cast_expression "(int *)*puVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar14" * identifier)))) ;) (expression_statement "*(int **)*puVar14 = piVar19;" (assignment_expression "*(int **)*puVar14 = piVar19" (pointer_expression "*(int **)*puVar14" * (cast_expression "(int **)*puVar14" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar14" * identifier))) = identifier) ;) (expression_statement "uVar17 = uVar12;" (assignment_expression "uVar17 = uVar12" identifier = identifier) ;) }))) (expression_statement "piVar19 = piVar4;" (assignment_expression "piVar19 = piVar4" identifier = identifier) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(piVar4 != (int *)0x0)" ( (binary_expression "piVar4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" if (parenthesized_expression "((undefined4 *)puVar21[1] != puVar21 + 7)" ( (binary_expression "(undefined4 *)puVar21[1] != puVar21 + 7" (cast_expression "(undefined4 *)puVar21[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar21[1]" identifier [ number_literal ])) != (binary_expression "puVar21 + 7" identifier + number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (if_statement "if (uVar6 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar21[2] = uVar6;" (assignment_expression "puVar21[2] = uVar6" (subscript_expression "puVar21[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar21[1] = puVar11;" (assignment_expression "puVar21[1] = puVar11" (subscript_expression "puVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7 = (uint *)(uVar23 % uVar6 << 2);" (assignment_expression "puVar7 = (uint *)(uVar23 % uVar6 << 2)" identifier = (cast_expression "(uint *)(uVar23 % uVar6 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar23 % uVar6 << 2)" ( (binary_expression "uVar23 % uVar6 << 2" (binary_expression "uVar23 % uVar6" identifier % identifier) << number_literal) )))) ;) }))) (if_statement "if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" if (parenthesized_expression "(*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0)" ( (binary_expression "*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0" (pointer_expression "*(int **)((int)puVar11 + (int)puVar7)" * (cast_expression "(int **)((int)puVar11 + (int)puVar7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + (int)puVar7)" ( (binary_expression "(int)puVar11 + (int)puVar7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }" { (expression_statement "*piVar3 = puVar21[3];" (assignment_expression "*piVar3 = puVar21[3]" (pointer_expression "*piVar3" * identifier) = (subscript_expression "puVar21[3]" identifier [ number_literal ])) ;) (expression_statement "puVar21[3] = piVar3;" (assignment_expression "puVar21[3] = piVar3" (subscript_expression "puVar21[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n            iVar15 = puVar21[1];\n          }" { (expression_statement "iVar15 = puVar21[1];" (assignment_expression "iVar15 = puVar21[1]" identifier = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" else (compound_statement "{\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" { (expression_statement "iVar15 = puVar21[1];" (assignment_expression "iVar15 = puVar21[1]" identifier = (subscript_expression "puVar21[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar21[2] == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(puVar21[2] == 0)" ( (binary_expression "puVar21[2] == 0" (subscript_expression "puVar21[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              trap(7);\n            }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;" (assignment_expression "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3" (pointer_expression "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" * (cast_expression "(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" ( (binary_expression "iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4" identifier + (binary_expression "(*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar3 + 4) % (uint)puVar21[2])" ( (binary_expression "*(uint *)(*piVar3 + 4) % (uint)puVar21[2]" (pointer_expression "*(uint *)(*piVar3 + 4)" * (cast_expression "(uint *)(*piVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar3 + 4)" ( (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" * identifier) + number_literal) )))) % (cast_expression "(uint)puVar21[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar21[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) }))) (expression_statement "*(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;" (assignment_expression "*(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3" (pointer_expression "*(undefined4 **)(iVar15 + (int)puVar7)" * (cast_expression "(undefined4 **)(iVar15 + (int)puVar7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + (int)puVar7)" ( (binary_expression "iVar15 + (int)puVar7" identifier + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "puVar21 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" else (compound_statement "{\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" { (expression_statement "*piVar3 = **(int **)((int)puVar11 + (int)puVar7);" (assignment_expression "*piVar3 = **(int **)((int)puVar11 + (int)puVar7)" (pointer_expression "*piVar3" * identifier) = (pointer_expression "**(int **)((int)puVar11 + (int)puVar7)" * (pointer_expression "*(int **)((int)puVar11 + (int)puVar7)" * (cast_expression "(int **)((int)puVar11 + (int)puVar7)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar11 + (int)puVar7)" ( (binary_expression "(int)puVar11 + (int)puVar7" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) (expression_statement "**(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;" (assignment_expression "**(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3" (pointer_expression "**(undefined4 **)(puVar21[1] + (int)puVar7)" * (pointer_expression "*(undefined4 **)(puVar21[1] + (int)puVar7)" * (cast_expression "(undefined4 **)(puVar21[1] + (int)puVar7)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21[1] + (int)puVar7)" ( (binary_expression "puVar21[1] + (int)puVar7" (subscript_expression "puVar21[1]" identifier [ number_literal ]) + (cast_expression "(int)puVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) = identifier) ;) }))) (expression_statement "iVar15 = *(int *)*puVar21;" (assignment_expression "iVar15 = *(int *)*puVar21" identifier = (pointer_expression "*(int *)*puVar21" * (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)))) ;) (expression_statement "puVar21[4] = puVar21[4] + 1;" (assignment_expression "puVar21[4] = puVar21[4] + 1" (subscript_expression "puVar21[4]" identifier [ number_literal ]) = (binary_expression "puVar21[4] + 1" (subscript_expression "puVar21[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);" (assignment_expression "piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21)" identifier = (cast_expression "(int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar15 + 0xc))((int *)*puVar21)" (parenthesized_expression "(**(code **)(iVar15 + 0xc))" ( (pointer_expression "**(code **)(iVar15 + 0xc)" * (pointer_expression "*(code **)(iVar15 + 0xc)" * (cast_expression "(code **)(iVar15 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 + 0xc)" ( (binary_expression "iVar15 + 0xc" identifier + number_literal) ))))) )) (argument_list "((int *)*puVar21)" ( (cast_expression "(int *)*puVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier)) ))))) ;) (return_statement "return piVar3;" return identifier ;) })) (expression_statement "uVar12 = ((int *)*piVar19)[1];" (assignment_expression "uVar12 = ((int *)*piVar19)[1]" identifier = (subscript_expression "((int *)*piVar19)[1]" (parenthesized_expression "((int *)*piVar19)" ( (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar4 = (int *)*piVar19;" (assignment_expression "piVar4 = (int *)*piVar19" identifier = (cast_expression "(int *)*piVar19" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar19" * identifier))) ;) (while_statement "while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }" while (parenthesized_expression "(piVar13 = piVar4, uVar23 != uVar12)" ( (comma_expression "piVar13 = piVar4, uVar23 != uVar12" (assignment_expression "piVar13 = piVar4" identifier = identifier) , (binary_expression "uVar23 != uVar12" identifier != identifier)) )) (compound_statement "{\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }" { (expression_statement "piVar4 = (int *)*piVar13;" (assignment_expression "piVar4 = (int *)*piVar13" identifier = (cast_expression "(int *)*piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (if_statement "if (piVar4 == (int *)0x0) goto LAB_0025eb6c;" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "uVar12 = piVar4[1];" (assignment_expression "uVar12 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "piVar19 = piVar13;" (assignment_expression "piVar19 = piVar13" identifier = identifier) ;) (if_statement "if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;" if (parenthesized_expression "(uVar23 % uVar6 != uVar12 % uVar6)" ( (binary_expression "uVar23 % uVar6 != uVar12 % uVar6" (binary_expression "uVar23 % uVar6" identifier % identifier) != (binary_expression "uVar12 % uVar6" identifier % identifier)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) })) (if_statement "if (*piVar19 == 0) goto LAB_0025eb6c;" if (parenthesized_expression "(*piVar19 == 0)" ( (binary_expression "*piVar19 == 0" (pointer_expression "*piVar19" * identifier) == number_literal) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))(piVar3);" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))(piVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);" (call_expression "(**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3e54))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3e54)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3e54)" * (cast_expression "(code **)(pcVar26 + 0x1d3e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3e54)" ( (binary_expression "pcVar26 + 0x1d3e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394)" ( (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1394" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar26 + 0x1d3cfc)" ( (binary_expression "pcVar26 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3dcc)" ( (binary_expression "pcVar26 + 0x1d3dcc" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);" statement_identifier : (expression_statement "puVar8 = (uint *)(*pcVar28)(0x20);" (assignment_expression "puVar8 = (uint *)(*pcVar28)(0x20)" identifier = (cast_expression "(uint *)(*pcVar28)(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar28)(0x20)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(0x20)" ( number_literal ))))) ;)) (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" identifier = identifier) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "puVar8[1] = (uint)(puVar8 + 3);" (assignment_expression "puVar8[1] = (uint)(puVar8 + 3)" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (call_expression "(uint)(puVar8 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar8 + 3)" ( (binary_expression "puVar8 + 3" identifier + number_literal) )))) ;) (if_statement "if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" if (parenthesized_expression "(puStack_f8 == puVar24)" ( (binary_expression "puStack_f8 == puVar24" identifier == identifier) )) (compound_statement "{\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }" { (expression_statement "puVar8[3] = uStack_f0;" (assignment_expression "puVar8[3] = uStack_f0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[4] = uStack_ec;" (assignment_expression "puVar8[4] = uStack_ec" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[5] = uStack_e8;" (assignment_expression "puVar8[5] = uStack_e8" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[6] = uStack_e4;" (assignment_expression "puVar8[6] = uStack_e4" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" else (compound_statement "{\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" { (expression_statement "puVar8[1] = (uint)puStack_f8;" (assignment_expression "puVar8[1] = (uint)puStack_f8" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_f8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar8[3] = uStack_f0;" (assignment_expression "puVar8[3] = uStack_f0" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uStack_cc = puVar7[6];" (assignment_expression "uStack_cc = puVar7[6]" identifier = (subscript_expression "puVar7[6]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar7[4];" (assignment_expression "uVar17 = puVar7[4]" identifier = (subscript_expression "puVar7[4]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = puVar7[2];" (assignment_expression "uVar12 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d45c0);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d45c0)" identifier = (pointer_expression "*(code **)(pcVar26 + 0x1d45c0)" * (cast_expression "(code **)(pcVar26 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d45c0)" ( (binary_expression "pcVar26 + 0x1d45c0" identifier + number_literal) ))))) ;) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" identifier = number_literal) ;) (expression_statement "puVar8[2] = uVar6;" (assignment_expression "puVar8[2] = uVar6" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_f0 = uStack_f0 & 0xffffff;" (assignment_expression "uStack_f0 = uStack_f0 & 0xffffff" identifier = (binary_expression "uStack_f0 & 0xffffff" identifier & number_literal)) ;) (expression_statement "puStack_f8 = puVar24;" (assignment_expression "puStack_f8 = puVar24" identifier = identifier) ;) (expression_statement "(*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);" (call_expression "(*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(acStack_e0,puVar7 + 5,uVar12,uVar17,1)" ( identifier , (binary_expression "puVar7 + 5" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = uStack_dc;" (assignment_expression "uVar6 = uStack_dc" identifier = identifier) ;) (if_statement "if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" if (parenthesized_expression "(acStack_e0[0] == '\0')" ( (binary_expression "acStack_e0[0] == '\0'" (subscript_expression "acStack_e0[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }" { (expression_statement "puVar9 = (uint *)puVar7[1];" (assignment_expression "puVar9 = (uint *)puVar7[1]" identifier = (cast_expression "(uint *)puVar7[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar8[7] = (uint)unaff_s5;" (assignment_expression "puVar8[7] = (uint)unaff_s5" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = puVar9 + (int)puVar22;" (assignment_expression "puVar22 = puVar9 + (int)puVar22" identifier = (binary_expression "puVar9 + (int)puVar22" identifier + (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar10 = (uint *)*puVar22;" (assignment_expression "puVar10 = (uint *)*puVar22" identifier = (cast_expression "(uint *)*puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ;) (if_statement "if (puVar10 != (uint *)0x0) goto LAB_0025ea48;" if (parenthesized_expression "(puVar10 != (uint *)0x0)" ( (binary_expression "puVar10 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea48;" goto statement_identifier ;)) (labeled_statement "LAB_0025ea84:\n        uVar6 = puVar7[3];" statement_identifier : (expression_statement "uVar6 = puVar7[3];" (assignment_expression "uVar6 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;)) (expression_statement "puVar7[3] = (uint)puVar8;" (assignment_expression "puVar7[3] = (uint)puVar8" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" * identifier) = identifier) ;) (if_statement "if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }" if (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) )) (compound_statement "{\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }" { (if_statement "if (puVar7[2] == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(puVar7[2] == 0)" ( (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;" (assignment_expression "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8" (subscript_expression "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]]" identifier [ (binary_expression "*(uint *)(uVar6 + 0x1c) % puVar7[2]" (pointer_expression "*(uint *)(uVar6 + 0x1c)" * (cast_expression "(uint *)(uVar6 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) % (subscript_expression "puVar7[2]" identifier [ number_literal ])) ]) = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*puVar22 = (uint)puStack_d8;" (assignment_expression "*puVar22 = (uint)puStack_d8" (pointer_expression "*puVar22" * identifier) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" else (compound_statement "{\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" { (if_statement "if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" if (parenthesized_expression "(uStack_dc == 1)" ( (binary_expression "uStack_dc == 1" identifier == number_literal) )) (compound_statement "{\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }" { (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9 = puStack_d4;" (assignment_expression "puVar9 = puStack_d4" identifier = identifier) ;) }) (else_clause "else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" else (compound_statement "{\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" { (expression_statement "puVar9 = (uint *)(*pcStack_d0)(uStack_dc);" (assignment_expression "puVar9 = (uint *)(*pcStack_d0)(uStack_dc)" identifier = (cast_expression "(uint *)(*pcStack_d0)(uStack_dc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_d0)(uStack_dc)" (parenthesized_expression "(*pcStack_d0)" ( (pointer_expression "*pcStack_d0" * identifier) )) (argument_list "(uStack_dc)" ( identifier ))))) ;) }))) (expression_statement "puVar22 = (uint *)puVar7[3];" (assignment_expression "puVar22 = (uint *)puVar7[3]" identifier = (cast_expression "(uint *)puVar7[3]" ( (type_descriptor "uint *" type_identifier (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 (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }" if (parenthesized_expression "(puVar22 != (uint *)0x0)" ( (binary_expression "puVar22 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);" do (compound_statement "{\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          }" { (while_statement "while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }" { (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar17 = puVar22[7] % uVar6;" (assignment_expression "uVar17 = puVar22[7] % uVar6" identifier = (binary_expression "puVar22[7] % uVar6" (subscript_expression "puVar22[7]" identifier [ number_literal ]) % identifier)) ;) (expression_statement "puVar10 = puVar9 + uVar17;" (assignment_expression "puVar10 = puVar9 + uVar17" identifier = (binary_expression "puVar9 + uVar17" identifier + identifier)) ;) (expression_statement "puVar18 = (uint *)*puVar22;" (assignment_expression "puVar18 = (uint *)*puVar22" identifier = (cast_expression "(uint *)*puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ;) (if_statement "if ((uint *)*puVar10 == (uint *)0x0) break;" if (parenthesized_expression "((uint *)*puVar10 == (uint *)0x0)" ( (binary_expression "(uint *)*puVar10 == (uint *)0x0" (cast_expression "(uint *)*puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier)) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar22 = *(uint *)*puVar10;" (assignment_expression "*puVar22 = *(uint *)*puVar10" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(uint *)*puVar10" * (cast_expression "(uint *)*puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier)))) ;) (expression_statement "*(uint **)*puVar10 = puVar22;" (assignment_expression "*(uint **)*puVar10 = puVar22" (pointer_expression "*(uint **)*puVar10" * (cast_expression "(uint **)*puVar10" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar10" * identifier))) = identifier) ;) (expression_statement "uVar17 = uVar12;" (assignment_expression "uVar17 = uVar12" identifier = identifier) ;) (labeled_statement "LAB_0025e9a0:\n              puVar22 = puVar18;" statement_identifier : (expression_statement "puVar22 = puVar18;" (assignment_expression "puVar22 = puVar18" identifier = identifier) ;)) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) (if_statement "if (puVar18 == (uint *)0x0) goto LAB_0025ea00;" if (parenthesized_expression "(puVar18 == (uint *)0x0)" ( (binary_expression "puVar18 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea00;" goto statement_identifier ;)) })) (expression_statement "*puVar22 = puVar7[3];" (assignment_expression "*puVar22 = puVar7[3]" (pointer_expression "*puVar22" * identifier) = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "puVar7[3] = (uint)puVar22;" (assignment_expression "puVar7[3] = (uint)puVar22" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar10 = (uint)puStack_d8;" (assignment_expression "*puVar10 = (uint)puStack_d8" (pointer_expression "*puVar10" * identifier) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*puVar22 == 0) goto LAB_0025e9a0;" if (parenthesized_expression "(*puVar22 == 0)" ( (binary_expression "*puVar22 == 0" (pointer_expression "*puVar22" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e9a0;" goto statement_identifier ;)) (expression_statement "puVar9[uVar12] = (uint)puVar22;" (assignment_expression "puVar9[uVar12] = (uint)puVar22" (subscript_expression "puVar9[uVar12]" identifier [ identifier ]) = (cast_expression "(uint)puVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = puVar18;" (assignment_expression "puVar22 = puVar18" identifier = identifier) ;) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(puVar18 != (uint *)0x0)" ( (binary_expression "puVar18 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" statement_identifier : (if_statement "if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" if (parenthesized_expression "(puStack_d4 != (uint *)puVar7[1])" ( (binary_expression "puStack_d4 != (uint *)puVar7[1]" identifier != (cast_expression "(uint *)puVar7[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar7[1]" identifier [ number_literal ]))) )) (compound_statement "{\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" { (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar26 + 0x1d3d1c)" ( (binary_expression "pcVar26 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          trap(7);\n        }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "puVar7[2] = uVar6;" (assignment_expression "puVar7[2] = uVar6" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[1] = (uint)puVar9;" (assignment_expression "puVar7[1] = (uint)puVar9" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar8[7] = (uint)unaff_s5;" (assignment_expression "puVar8[7] = (uint)unaff_s5" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar22 = puVar9 + (uint)unaff_s5 % uVar6;" (assignment_expression "puVar22 = puVar9 + (uint)unaff_s5 % uVar6" identifier = (binary_expression "puVar9 + (uint)unaff_s5 % uVar6" identifier + (binary_expression "(uint)unaff_s5 % uVar6" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "puVar10 = (uint *)*puVar22;" (assignment_expression "puVar10 = (uint *)*puVar22" identifier = (cast_expression "(uint *)*puVar22" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar22" * identifier))) ;) (if_statement "if (puVar10 == (uint *)0x0) goto LAB_0025ea84;" if (parenthesized_expression "(puVar10 == (uint *)0x0)" ( (binary_expression "puVar10 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0025ea84;" goto statement_identifier ;)) (labeled_statement "LAB_0025ea48:\n        *puVar8 = *puVar10;" statement_identifier : (expression_statement "*puVar8 = *puVar10;" (assignment_expression "*puVar8 = *puVar10" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar10" * identifier)) ;)) (expression_statement "*(uint **)*puVar22 = puVar8;" (assignment_expression "*(uint **)*puVar22 = puVar8" (pointer_expression "*(uint **)*puVar22" * (cast_expression "(uint **)*puVar22" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar22" * 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)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * 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 (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 TYPE (array_declarator IDENT [ LIT ]) ;) (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * 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 TYPE (array_declarator IDENT [ LIT ]) ;) (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 (pointer_declarator * 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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) )) (argument_list ( 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT ))) ;) (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 (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression LIT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (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 IDENT + LIT) ))))) )) (argument_list ( 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 TYPE (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * 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 IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * 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 IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (labeled_statement statement_identifier : (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 * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , IDENT , (subscript_expression IDENT [ LIT ]) , LIT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (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 IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 TYPE (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 TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (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) = (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 TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 TYPE (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) << LIT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == (cast_expression ( (type_descriptor TYPE (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (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 + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) 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 ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) != (binary_expression IDENT % IDENT)) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (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 IDENT + LIT) ))))) )) (argument_list ( 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 IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (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) )))) % (subscript_expression IDENT [ LIT ])) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 TYPE (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) % IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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 TYPE (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) % IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (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)) ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "int * FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}" (primitive_type "int") (pointer_declarator "* FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)" (* "*") (function_declarator "FUN_0025e1a8(int *param_1,Workqueue *param_2,int *param_3)" (identifier "FUN_0025e1a8") (parameter_list "(int *param_1,Workqueue *param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "Workqueue *param_2" (type_identifier "Workqueue") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  int *piVar3;\n  int *piVar4;\n  Task *pTVar5;\n  uint uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  uint *puVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  uint uVar12;\n  int *piVar13;\n  undefined4 *puVar14;\n  int iVar15;\n  int iVar16;\n  uint uVar17;\n  uint *puVar18;\n  int *piVar19;\n  uint unaff_s1;\n  int iVar20;\n  int *unaff_s2;\n  undefined4 *puVar21;\n  int *unaff_s3;\n  uint *puVar22;\n  Workqueue *unaff_s4;\n  uint uVar23;\n  int *unaff_s5;\n  uint *puVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  undefined *puVar27;\n  code *pcVar28;\n  uint *puStack_f8;\n  uint uStack_f4;\n  uint uStack_f0;\n  uint uStack_ec;\n  uint uStack_e8;\n  uint uStack_e4;\n  char acStack_e0 [4];\n  uint uStack_dc;\n  uint *puStack_d8;\n  uint *puStack_d4;\n  code *pcStack_d0;\n  uint uStack_cc;\n  int iStack_c8;\n  undefined1 *puStack_c4;\n  undefined1 **ppuStack_c0;\n  uint *puStack_bc;\n  Workqueue *pWStack_b8;\n  int *piStack_b4;\n  uint *puStack_b0;\n  undefined1 *puStack_88;\n  int iStack_84;\n  undefined1 auStack_80 [20];\n  int *piStack_6c;\n  uint uStack_68;\n  int *piStack_64;\n  int *piStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  \n  if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }\n  puVar25 = PTR___throw_bad_alloc_00432404;\n  (*(code *)PTR___throw_bad_alloc_00432404)();\n  puVar27 = puVar25 + 0x1dbfbc;\n  puVar24 = *(uint **)(puVar25 + 0x1d5104);\n  puStack_48 = puVar27;\n  if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }\n  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);\n  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);\n  iVar15 = 0x20;\n  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);\n  pcVar26 = *(code **)(puStack_48 + -0x7f78);\n  pcVar28 = FUN_0025e3dc;\n  piVar3 = piVar19;\n  (*pcVar26)();\n  puStack_88 = auStack_80;\n  piStack_6c = piVar19;\n  uStack_68 = unaff_s1;\n  piStack_64 = unaff_s2;\n  piStack_60 = unaff_s3;\n  pcStack_5c = pcVar28;\n  (**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar22 = *(uint **)(iVar15 + 0x24);\n  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);\n  if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }\n  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;\n  (**(code **)(pcVar26 + 0x1d40a4))();\n  if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }\n  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);\n  iVar20 = iVar15;\n  (*pcVar26)();\n  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar23 = *(uint *)(iVar20 + 0x24);\n  iStack_c8 = iVar15;\n  puStack_c4 = auStack_80;\n  ppuStack_c0 = &puStack_88;\n  puStack_bc = puVar22;\n  pWStack_b8 = unaff_s4;\n  piStack_b4 = unaff_s5;\n  puStack_b0 = puVar24;\n  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);\n  uVar6 = puVar21[2];\n  if (uVar6 == 0) {\n    trap(7);\n  }\n  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);\n  if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }\n  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\nLAB_0025e698:\n  (*pcVar28)();\n  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_d4 = puVar7 + 7;\n  *puVar7 = uVar23;\n  iVar15 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar28 = *(code **)(pcVar26 + 0x1d8260);\n  puVar7[1] = (uint)puStack_d4;\n  uVar6 = *(uint *)(iVar15 + -0x636c);\n  puVar7[4] = 0;\n  puVar7[7] = 0;\n  puVar7[2] = 1;\n  puVar7[3] = 0;\n  puVar7[6] = 0;\n  puVar7[5] = uVar6;\n  iVar15 = (*pcVar28)(uVar23);\n  if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }\n  puStack_d8 = puVar7 + 3;\n  puVar24 = &uStack_f0;\n  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n  if (iVar20 == 0) goto LAB_0025e7f8;\n  do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "Task *pTVar5;" (type_identifier "Task") (pointer_declarator "*pTVar5" (* "*") (identifier "pTVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint *puVar9;" (type_identifier "uint") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "uint *puVar18;" (type_identifier "uint") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "uint unaff_s1;" (type_identifier "uint") (identifier "unaff_s1") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined4 *puVar21;" (type_identifier "undefined4") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "int *unaff_s3;" (primitive_type "int") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "uint *puVar22;" (type_identifier "uint") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "Workqueue *unaff_s4;" (type_identifier "Workqueue") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int *unaff_s5;" (primitive_type "int") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "uint *puVar24;" (type_identifier "uint") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined *puVar25;" (type_identifier "undefined") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "undefined *puVar27;" (type_identifier "undefined") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "uint *puStack_f8;" (type_identifier "uint") (pointer_declarator "*puStack_f8" (* "*") (identifier "puStack_f8")) (; ";")) (declaration "uint uStack_f4;" (type_identifier "uint") (identifier "uStack_f4") (; ";")) (declaration "uint uStack_f0;" (type_identifier "uint") (identifier "uStack_f0") (; ";")) (declaration "uint uStack_ec;" (type_identifier "uint") (identifier "uStack_ec") (; ";")) (declaration "uint uStack_e8;" (type_identifier "uint") (identifier "uStack_e8") (; ";")) (declaration "uint uStack_e4;" (type_identifier "uint") (identifier "uStack_e4") (; ";")) (declaration "char acStack_e0 [4];" (primitive_type "char") (array_declarator "acStack_e0 [4]" (identifier "acStack_e0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint uStack_dc;" (type_identifier "uint") (identifier "uStack_dc") (; ";")) (declaration "uint *puStack_d8;" (type_identifier "uint") (pointer_declarator "*puStack_d8" (* "*") (identifier "puStack_d8")) (; ";")) (declaration "uint *puStack_d4;" (type_identifier "uint") (pointer_declarator "*puStack_d4" (* "*") (identifier "puStack_d4")) (; ";")) (declaration "code *pcStack_d0;" (type_identifier "code") (pointer_declarator "*pcStack_d0" (* "*") (identifier "pcStack_d0")) (; ";")) (declaration "uint uStack_cc;" (type_identifier "uint") (identifier "uStack_cc") (; ";")) (declaration "int iStack_c8;" (primitive_type "int") (identifier "iStack_c8") (; ";")) (declaration "undefined1 *puStack_c4;" (type_identifier "undefined1") (pointer_declarator "*puStack_c4" (* "*") (identifier "puStack_c4")) (; ";")) (declaration "undefined1 **ppuStack_c0;" (type_identifier "undefined1") (pointer_declarator "**ppuStack_c0" (* "*") (pointer_declarator "*ppuStack_c0" (* "*") (identifier "ppuStack_c0"))) (; ";")) (declaration "uint *puStack_bc;" (type_identifier "uint") (pointer_declarator "*puStack_bc" (* "*") (identifier "puStack_bc")) (; ";")) (declaration "Workqueue *pWStack_b8;" (type_identifier "Workqueue") (pointer_declarator "*pWStack_b8" (* "*") (identifier "pWStack_b8")) (; ";")) (declaration "int *piStack_b4;" (primitive_type "int") (pointer_declarator "*piStack_b4" (* "*") (identifier "piStack_b4")) (; ";")) (declaration "uint *puStack_b0;" (type_identifier "uint") (pointer_declarator "*puStack_b0" (* "*") (identifier "puStack_b0")) (; ";")) (declaration "undefined1 *puStack_88;" (type_identifier "undefined1") (pointer_declarator "*puStack_88" (* "*") (identifier "puStack_88")) (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "undefined1 auStack_80 [20];" (type_identifier "undefined1") (array_declarator "auStack_80 [20]" (identifier "auStack_80") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "int *piStack_6c;" (primitive_type "int") (pointer_declarator "*piStack_6c" (* "*") (identifier "piStack_6c")) (; ";")) (declaration "uint uStack_68;" (type_identifier "uint") (identifier "uStack_68") (; ";")) (declaration "int *piStack_64;" (primitive_type "int") (pointer_declarator "*piStack_64" (* "*") (identifier "piStack_64")) (; ";")) (declaration "int *piStack_60;" (primitive_type "int") (pointer_declarator "*piStack_60" (* "*") (identifier "piStack_60")) (; ";")) (declaration "code *pcStack_5c;" (type_identifier "code") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "undefined *puStack_48;" (type_identifier "undefined") (pointer_declarator "*puStack_48" (* "*") (identifier "puStack_48")) (; ";")) (if_statement "if (param_1 < (int *)0x40000000) {\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }" (if "if") (parenthesized_expression "(param_1 < (int *)0x40000000)" (( "(") (binary_expression "param_1 < (int *)0x40000000" (identifier "param_1") (< "<") (cast_expression "(int *)0x40000000" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x40000000"))) () ")")) (compound_statement "{\n    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);\n    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);\n    return piVar3;\n  }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);" (assignment_expression "uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR_operator_new_0043233c)((int)param_1 << 2)" (parenthesized_expression "(*(code *)PTR_operator_new_0043233c)" (( "(") (pointer_expression "*(code *)PTR_operator_new_0043233c" (* "*") (cast_expression "(code *)PTR_operator_new_0043233c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_new_0043233c"))) () ")")) (argument_list "((int)param_1 << 2)" (( "(") (binary_expression "(int)param_1 << 2" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2)" (parenthesized_expression "(*(code *)PTR_memset_00436850)" (( "(") (pointer_expression "*(code *)PTR_memset_00436850" (* "*") (cast_expression "(code *)PTR_memset_00436850" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_00436850"))) () ")")) (argument_list "(uVar2,0,(int)param_1 << 2)" (( "(") (identifier "uVar2") (, ",") (number_literal "0") (, ",") (binary_expression "(int)param_1 << 2" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}"))) (expression_statement "puVar25 = PTR___throw_bad_alloc_00432404;" (assignment_expression "puVar25 = PTR___throw_bad_alloc_00432404" (identifier "puVar25") (= "=") (identifier "PTR___throw_bad_alloc_00432404")) (; ";")) (expression_statement "(*(code *)PTR___throw_bad_alloc_00432404)();" (call_expression "(*(code *)PTR___throw_bad_alloc_00432404)()" (parenthesized_expression "(*(code *)PTR___throw_bad_alloc_00432404)" (( "(") (pointer_expression "*(code *)PTR___throw_bad_alloc_00432404" (* "*") (cast_expression "(code *)PTR___throw_bad_alloc_00432404" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_bad_alloc_00432404"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar27 = puVar25 + 0x1dbfbc;" (assignment_expression "puVar27 = puVar25 + 0x1dbfbc" (identifier "puVar27") (= "=") (binary_expression "puVar25 + 0x1dbfbc" (identifier "puVar25") (+ "+") (number_literal "0x1dbfbc"))) (; ";")) (expression_statement "puVar24 = *(uint **)(puVar25 + 0x1d5104);" (assignment_expression "puVar24 = *(uint **)(puVar25 + 0x1d5104)" (identifier "puVar24") (= "=") (pointer_expression "*(uint **)(puVar25 + 0x1d5104)" (* "*") (cast_expression "(uint **)(puVar25 + 0x1d5104)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x1d5104)" (( "(") (binary_expression "puVar25 + 0x1d5104" (identifier "puVar25") (+ "+") (number_literal "0x1d5104")) () ")"))))) (; ";")) (expression_statement "puStack_48 = puVar27;" (assignment_expression "puStack_48 = puVar27" (identifier "puStack_48") (= "=") (identifier "puVar27")) (; ";")) (if_statement "if (puVar24[-0xa0c] == 0) {\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" (if "if") (parenthesized_expression "(puVar24[-0xa0c] == 0)" (( "(") (binary_expression "puVar24[-0xa0c] == 0" (subscript_expression "puVar24[-0xa0c]" (identifier "puVar24") ([ "[") (number_literal "-0xa0c") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);\n    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);\n    piVar19 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar3 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    iVar15 = *(int *)(puStack_48 + -0x7e1c);\n    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar2 = *(undefined4 *)(iVar15 + -0x636c);\n    *(undefined4 *)(unaff_s1 + 8) = 1;\n    *(undefined4 *)(unaff_s1 + 0x1c) = 0;\n    *(undefined4 *)(unaff_s1 + 0xc) = 0;\n    *(undefined4 *)(unaff_s1 + 0x18) = 0;\n    puVar24[-0xa0c] = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    puVar27 = puStack_48;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }\n  }" ({ "{") (expression_statement "unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);" (assignment_expression "unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20)" (identifier "unaff_s1") (= "=") (call_expression "(**(code **)(puVar25 + 0x1d4128))(0x20)" (parenthesized_expression "(**(code **)(puVar25 + 0x1d4128))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x1d4128)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x1d4128)" (* "*") (cast_expression "(code **)(puVar25 + 0x1d4128)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x1d4128)" (( "(") (binary_expression "puVar25 + 0x1d4128" (identifier "puVar25") (+ "+") (number_literal "0x1d4128")) () ")"))))) () ")")) (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_48 + -0x61a0))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x61a0))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x61a0))" (( "(") (pointer_expression "**(code **)(puStack_48 + -0x61a0)" (* "*") (pointer_expression "*(code **)(puStack_48 + -0x61a0)" (* "*") (cast_expression "(code **)(puStack_48 + -0x61a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_48 + -0x61a0)" (( "(") (binary_expression "puStack_48 + -0x61a0" (identifier "puStack_48") (+ "+") (number_literal "-0x61a0")) () ")"))))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "piVar19 = (int *)*param_3;" (assignment_expression "piVar19 = (int *)*param_3" (identifier "piVar19") (= "=") (cast_expression "(int *)*param_3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "unaff_s3 = param_1 + 1;" (assignment_expression "unaff_s3 = param_1 + 1" (identifier "unaff_s3") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3 = (int *)param_3[1];" (assignment_expression "piVar3 = (int *)param_3[1]" (identifier "piVar3") (= "=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "cVar1 = *(char *)(param_1 + 1);" (assignment_expression "cVar1 = *(char *)(param_1 + 1)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(param_1 + 1)" (* "*") (cast_expression "(char *)(param_1 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(puStack_48 + -0x7e1c);" (assignment_expression "iVar15 = *(int *)(puStack_48 + -0x7e1c)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puStack_48 + -0x7e1c)" (* "*") (cast_expression "(int *)(puStack_48 + -0x7e1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_48 + -0x7e1c)" (( "(") (binary_expression "puStack_48 + -0x7e1c" (identifier "puStack_48") (+ "+") (number_literal "-0x7e1c")) () ")"))))) (; ";")) (expression_statement "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(uint *)(unaff_s1 + 4)" (* "*") (cast_expression "(uint *)(unaff_s1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 4)" (( "(") (binary_expression "unaff_s1 + 4" (identifier "unaff_s1") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "unaff_s1 + 0x1c" (identifier "unaff_s1") (+ "+") (number_literal "0x1c"))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s1 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x10) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(unaff_s1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 0x10)" (( "(") (binary_expression "unaff_s1 + 0x10" (identifier "unaff_s1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = *(undefined4 *)(iVar15 + -0x636c);" (assignment_expression "uVar2 = *(undefined4 *)(iVar15 + -0x636c)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(iVar15 + -0x636c)" (* "*") (cast_expression "(undefined4 *)(iVar15 + -0x636c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x636c)" (( "(") (binary_expression "iVar15 + -0x636c" (identifier "iVar15") (+ "+") (number_literal "-0x636c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s1 + 8) = 1;" (assignment_expression "*(undefined4 *)(unaff_s1 + 8) = 1" (pointer_expression "*(undefined4 *)(unaff_s1 + 8)" (* "*") (cast_expression "(undefined4 *)(unaff_s1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 8)" (( "(") (binary_expression "unaff_s1 + 8" (identifier "unaff_s1") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s1 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x1c) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(unaff_s1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 0x1c)" (( "(") (binary_expression "unaff_s1 + 0x1c" (identifier "unaff_s1") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s1 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0xc) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(unaff_s1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 0xc)" (( "(") (binary_expression "unaff_s1 + 0xc" (identifier "unaff_s1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(unaff_s1 + 0x18) = 0;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x18) = 0" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x18)" (* "*") (cast_expression "(undefined4 *)(unaff_s1 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 0x18)" (( "(") (binary_expression "unaff_s1 + 0x18" (identifier "unaff_s1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar24[-0xa0c] = unaff_s1;" (assignment_expression "puVar24[-0xa0c] = unaff_s1" (subscript_expression "puVar24[-0xa0c]" (identifier "puVar24") ([ "[") (number_literal "-0xa0c") (] "]")) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "*param_1 = (int)param_3;" (assignment_expression "*param_1 = (int)param_3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "*(undefined4 *)(unaff_s1 + 0x14) = uVar2;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar2" (pointer_expression "*(undefined4 *)(unaff_s1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(unaff_s1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s1 + 0x14)" (( "(") (binary_expression "unaff_s1 + 0x14" (identifier "unaff_s1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "unaff_s2 = param_3;" (assignment_expression "unaff_s2 = param_3" (identifier "unaff_s2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "unaff_s4 = param_2;" (assignment_expression "unaff_s4 = param_2" (identifier "unaff_s4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puVar27 = puStack_48;" (assignment_expression "puVar27 = puStack_48" (identifier "puVar27") (= "=") (identifier "puStack_48")) (; ";")) (if_statement "if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_1[3] = 0;\n      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar4;\n      if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }\n      return piVar4;\n    }" ({ "{") (expression_statement "param_1[3] = 0;" (assignment_expression "param_1[3] = 0" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);" (assignment_expression "piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" (identifier "piVar4") (= "=") (cast_expression "(int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249)" (( "(") (binary_expression "param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "((int)piVar3 - (int)piVar19 >> 2) * -0x49249249" (parenthesized_expression "((int)piVar3 - (int)piVar19 >> 2)" (( "(") (binary_expression "(int)piVar3 - (int)piVar19 >> 2" (binary_expression "(int)piVar3 - (int)piVar19" (cast_expression "(int)piVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar3")) (- "-") (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x49249249"))) () ")")))) (; ";")) (expression_statement "param_1[2] = (int)piVar4;" (assignment_expression "param_1[2] = (int)piVar4" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (if_statement "if (piVar19 != piVar3) {\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }" (if "if") (parenthesized_expression "(piVar19 != piVar3)" (( "(") (binary_expression "piVar19 != piVar3" (identifier "piVar19") (!= "!=") (identifier "piVar3")) () ")")) (compound_statement "{\n        iVar15 = *(int *)(puStack_48 + -0x7fd8);\n        do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);\n      }" ({ "{") (expression_statement "iVar15 = *(int *)(puStack_48 + -0x7fd8);" (assignment_expression "iVar15 = *(int *)(puStack_48 + -0x7fd8)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puStack_48 + -0x7fd8)" (* "*") (cast_expression "(int *)(puStack_48 + -0x7fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_48 + -0x7fd8)" (( "(") (binary_expression "puStack_48 + -0x7fd8" (identifier "puStack_48") (+ "+") (number_literal "-0x7fd8")) () ")"))))) (; ";")) (do_statement "do {\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        } while (piVar4 != piVar19);" (do "do") (compound_statement "{\n          iVar20 = *piVar19;\n          piVar19 = piVar19 + 7;\n          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);\n          *(undefined4 *)(pTVar5 + 4) = 0;\n          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;\n          *(undefined4 *)(pTVar5 + 0xc) = 0;\n          pTVar5[0x10] = (Task)0x0;\n          pTVar5[0x20] = (Task)0x0;\n          *(int *)pTVar5 = iVar15 + -0x6d48;\n          *(int *)(pTVar5 + 0x24) = iVar20;\n          *(int **)(pTVar5 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar5);\n          piVar4 = (int *)param_3[1];\n        }" ({ "{") (expression_statement "iVar20 = *piVar19;" (assignment_expression "iVar20 = *piVar19" (identifier "iVar20") (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "piVar19 = piVar19 + 7;" (assignment_expression "piVar19 = piVar19 + 7" (identifier "piVar19") (= "=") (binary_expression "piVar19 + 7" (identifier "piVar19") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);" (assignment_expression "pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" (identifier "pTVar5") (= "=") (cast_expression "(Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c)" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puStack_48 + -0x7e94))(0x2c)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e94))" (( "(") (pointer_expression "**(code **)(puStack_48 + -0x7e94)" (* "*") (pointer_expression "*(code **)(puStack_48 + -0x7e94)" (* "*") (cast_expression "(code **)(puStack_48 + -0x7e94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_48 + -0x7e94)" (( "(") (binary_expression "puStack_48 + -0x7e94" (identifier "puStack_48") (+ "+") (number_literal "-0x7e94")) () ")"))))) () ")")) (argument_list "(0x2c)" (( "(") (number_literal "0x2c") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(pTVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 4)" (( "(") (binary_expression "pTVar5 + 4" (identifier "pTVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(Task **)(pTVar5 + 8) = pTVar5 + 0x10;" (assignment_expression "*(Task **)(pTVar5 + 8) = pTVar5 + 0x10" (pointer_expression "*(Task **)(pTVar5 + 8)" (* "*") (cast_expression "(Task **)(pTVar5 + 8)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pTVar5 + 8)" (( "(") (binary_expression "pTVar5 + 8" (identifier "pTVar5") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "pTVar5 + 0x10" (identifier "pTVar5") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined4 *)(pTVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pTVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 0xc)" (( "(") (binary_expression "pTVar5 + 0xc" (identifier "pTVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pTVar5[0x10] = (Task)0x0;" (assignment_expression "pTVar5[0x10] = (Task)0x0" (subscript_expression "pTVar5[0x10]" (identifier "pTVar5") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(Task)0x0" (( "(") (type_descriptor "Task" (type_identifier "Task")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pTVar5[0x20] = (Task)0x0;" (assignment_expression "pTVar5[0x20] = (Task)0x0" (subscript_expression "pTVar5[0x20]" (identifier "pTVar5") ([ "[") (number_literal "0x20") (] "]")) (= "=") (cast_expression "(Task)0x0" (( "(") (type_descriptor "Task" (type_identifier "Task")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(int *)pTVar5 = iVar15 + -0x6d48;" (assignment_expression "*(int *)pTVar5 = iVar15 + -0x6d48" (pointer_expression "*(int *)pTVar5" (* "*") (cast_expression "(int *)pTVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pTVar5"))) (= "=") (binary_expression "iVar15 + -0x6d48" (identifier "iVar15") (+ "+") (number_literal "-0x6d48"))) (; ";")) (expression_statement "*(int *)(pTVar5 + 0x24) = iVar20;" (assignment_expression "*(int *)(pTVar5 + 0x24) = iVar20" (pointer_expression "*(int *)(pTVar5 + 0x24)" (* "*") (cast_expression "(int *)(pTVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 0x24)" (( "(") (binary_expression "pTVar5 + 0x24" (identifier "pTVar5") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "iVar20")) (; ";")) (expression_statement "*(int **)(pTVar5 + 0x28) = unaff_s3;" (assignment_expression "*(int **)(pTVar5 + 0x28) = unaff_s3" (pointer_expression "*(int **)(pTVar5 + 0x28)" (* "*") (cast_expression "(int **)(pTVar5 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pTVar5 + 0x28)" (( "(") (binary_expression "pTVar5 + 0x28" (identifier "pTVar5") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "unaff_s3")) (; ";")) (labeled_statement "gold::Workqueue::queue(param_2,pTVar5);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Workqueue::queue(param_2,pTVar5);" (statement_identifier "Workqueue") (: ":") (ERROR ":" (: ":")) (expression_statement "queue(param_2,pTVar5);" (call_expression "queue(param_2,pTVar5)" (identifier "queue") (argument_list "(param_2,pTVar5)" (( "(") (identifier "param_2") (, ",") (identifier "pTVar5") () ")"))) (; ";")))) (expression_statement "piVar4 = (int *)param_3[1];" (assignment_expression "piVar4 = (int *)param_3[1]" (identifier "piVar4") (= "=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar4 != piVar19)" (( "(") (binary_expression "piVar4 != piVar19" (identifier "piVar4") (!= "!=") (identifier "piVar19")) () ")")) (; ";")) (} "}"))) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);\n  }" ({ "{") (expression_statement "(**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);" (call_expression "(**(code **)(puVar25 + 0x1d41b0))\n              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8)" (parenthesized_expression "(**(code **)(puVar25 + 0x1d41b0))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x1d41b0)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x1d41b0)" (* "*") (cast_expression "(code **)(puVar25 + 0x1d41b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x1d41b0)" (( "(") (binary_expression "puVar25 + 0x1d41b0" (identifier "puVar25") (+ "+") (number_literal "0x1d41b0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8)" (( "(") (binary_expression "*(int *)(puVar25 + 0x1d4058) + 0x12f0" (pointer_expression "*(int *)(puVar25 + 0x1d4058)" (* "*") (cast_expression "(int *)(puVar25 + 0x1d4058)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x1d4058)" (( "(") (binary_expression "puVar25 + 0x1d4058" (identifier "puVar25") (+ "+") (number_literal "0x1d4058")) () ")")))) (+ "+") (number_literal "0x12f0")) (, ",") (number_literal "0xe7") (, ",") (binary_expression "*(int *)(puVar25 + 0x1d4058) + 0x13a8" (pointer_expression "*(int *)(puVar25 + 0x1d4058)" (* "*") (cast_expression "(int *)(puVar25 + 0x1d4058)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x1d4058)" (( "(") (binary_expression "puVar25 + 0x1d4058" (identifier "puVar25") (+ "+") (number_literal "0x1d4058")) () ")")))) (+ "+") (number_literal "0x13a8")) () ")"))) (; ";")) (} "}")))) (expression_statement "piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);" (assignment_expression "piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" (identifier "piVar19") (= "=") (cast_expression "(int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar27 + -0x7fc4) + 0x48a0)" (( "(") (binary_expression "*(int *)(puVar27 + -0x7fc4) + 0x48a0" (pointer_expression "*(int *)(puVar27 + -0x7fc4)" (* "*") (cast_expression "(int *)(puVar27 + -0x7fc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x7fc4)" (( "(") (binary_expression "puVar27 + -0x7fc4" (identifier "puVar27") (+ "+") (number_literal "-0x7fc4")) () ")")))) (+ "+") (number_literal "0x48a0")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);" (call_expression "(**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398)" (parenthesized_expression "(**(code **)(puVar27 + -0x7e0c))" (( "(") (pointer_expression "**(code **)(puVar27 + -0x7e0c)" (* "*") (pointer_expression "*(code **)(puVar27 + -0x7e0c)" (* "*") (cast_expression "(code **)(puVar27 + -0x7e0c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + -0x7e0c)" (( "(") (binary_expression "puVar27 + -0x7e0c" (identifier "puVar27") (+ "+") (number_literal "-0x7e0c")) () ")"))))) () ")")) (argument_list "(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398)" (( "(") (identifier "piVar19") (, ",") (number_literal "0x97") (, ",") (binary_expression "*(int *)(puVar27 + -0x7f64) + 0x1398" (pointer_expression "*(int *)(puVar27 + -0x7f64)" (* "*") (cast_expression "(int *)(puVar27 + -0x7f64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + -0x7f64)" (( "(") (binary_expression "puVar27 + -0x7f64" (identifier "puVar27") (+ "+") (number_literal "-0x7f64")) () ")")))) (+ "+") (number_literal "0x1398")) () ")"))) (; ";")) (expression_statement "iVar15 = 0x20;" (assignment_expression "iVar15 = 0x20" (identifier "iVar15") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "(**(code **)(puStack_48 + -0x7e10))(unaff_s1);" (call_expression "(**(code **)(puStack_48 + -0x7e10))(unaff_s1)" (parenthesized_expression "(**(code **)(puStack_48 + -0x7e10))" (( "(") (pointer_expression "**(code **)(puStack_48 + -0x7e10)" (* "*") (pointer_expression "*(code **)(puStack_48 + -0x7e10)" (* "*") (cast_expression "(code **)(puStack_48 + -0x7e10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_48 + -0x7e10)" (( "(") (binary_expression "puStack_48 + -0x7e10" (identifier "puStack_48") (+ "+") (number_literal "-0x7e10")) () ")"))))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "pcVar26 = *(code **)(puStack_48 + -0x7f78);" (assignment_expression "pcVar26 = *(code **)(puStack_48 + -0x7f78)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puStack_48 + -0x7f78)" (* "*") (cast_expression "(code **)(puStack_48 + -0x7f78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_48 + -0x7f78)" (( "(") (binary_expression "puStack_48 + -0x7f78" (identifier "puStack_48") (+ "+") (number_literal "-0x7f78")) () ")"))))) (; ";")) (expression_statement "pcVar28 = FUN_0025e3dc;" (assignment_expression "pcVar28 = FUN_0025e3dc" (identifier "pcVar28") (= "=") (identifier "FUN_0025e3dc")) (; ";")) (expression_statement "piVar3 = piVar19;" (assignment_expression "piVar3 = piVar19" (identifier "piVar3") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_88 = auStack_80;" (assignment_expression "puStack_88 = auStack_80" (identifier "puStack_88") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "piStack_6c = piVar19;" (assignment_expression "piStack_6c = piVar19" (identifier "piStack_6c") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "uStack_68 = unaff_s1;" (assignment_expression "uStack_68 = unaff_s1" (identifier "uStack_68") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piStack_64 = unaff_s2;" (assignment_expression "piStack_64 = unaff_s2" (identifier "piStack_64") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "piStack_60 = unaff_s3;" (assignment_expression "piStack_60 = unaff_s3" (identifier "piStack_60") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pcStack_5c = pcVar28;" (assignment_expression "pcStack_5c = pcVar28" (identifier "pcStack_5c") (= "=") (identifier "pcVar28")) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(pcVar26 + 0x1d40ac))\n            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d40ac))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d40ac)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d40ac)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d40ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d40ac)" (( "(") (binary_expression "pcVar26 + 0x1d40ac" (identifier "pcVar26") (+ "+") (number_literal "0x1d40ac")) () ")"))))) () ")")) (argument_list "(&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317\n             ,0)" (( "(") (pointer_expression "&puStack_88" (& "&") (identifier "puStack_88")) (, ",") (binary_expression "*(int *)(pcVar26 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(pcVar26 + 0x1d3e90)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3e90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3e90)" (( "(") (binary_expression "pcVar26 + 0x1d3e90" (identifier "pcVar26") (+ "+") (number_literal "0x1d3e90")) () ")")))) (+ "+") (number_literal "0x1308")) (, ",") (binary_expression "*(int *)(pcVar26 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(pcVar26 + 0x1d3e90)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3e90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3e90)" (( "(") (binary_expression "pcVar26 + 0x1d3e90" (identifier "pcVar26") (+ "+") (number_literal "0x1d3e90")) () ")")))) (+ "+") (number_literal "0x1317")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar22 = *(uint **)(iVar15 + 0x24);" (assignment_expression "puVar22 = *(uint **)(iVar15 + 0x24)" (identifier "puVar22") (= "=") (pointer_expression "*(uint **)(iVar15 + 0x24)" (* "*") (cast_expression "(uint **)(iVar15 + 0x24)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0x24)" (( "(") (binary_expression "iVar15 + 0x24" (identifier "iVar15") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);" (assignment_expression "uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d83a0))(puVar22)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d83a0))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d83a0)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d83a0)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d83a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d83a0)" (( "(") (binary_expression "pcVar26 + 0x1d83a0" (identifier "pcVar26") (+ "+") (number_literal "0x1d83a0")) () ")"))))) () ")")) (argument_list "(puVar22)" (( "(") (identifier "puVar22") () ")")))) (; ";")) (if_statement "if (uVar6 <= 0x7fffffffU - iStack_84) {\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }" (if "if") (parenthesized_expression "(uVar6 <= 0x7fffffffU - iStack_84)" (( "(") (binary_expression "uVar6 <= 0x7fffffffU - iStack_84" (identifier "uVar6") (<= "<=") (binary_expression "0x7fffffffU - iStack_84" (number_literal "0x7fffffffU") (- "-") (identifier "iStack_84"))) () ")")) (compound_statement "{\n    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);\n    piVar4 = piVar19 + 2;\n    *piVar3 = (int)(piVar3 + 2);\n    if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }\n    piVar3[1] = piVar19[1];\n    *piVar19 = (int)piVar4;\n    piVar19[1] = 0;\n    *(undefined1 *)(piVar19 + 2) = 0;\n    if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }\n    return piVar3;\n  }" ({ "{") (expression_statement "piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);" (assignment_expression "piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" (identifier "piVar19") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4874))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d4874)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d4874)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d4874)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d4874)" (( "(") (binary_expression "pcVar26 + 0x1d4874" (identifier "pcVar26") (+ "+") (number_literal "0x1d4874")) () ")"))))) () ")")) (argument_list "(&puStack_88,puVar22,uVar6)" (( "(") (pointer_expression "&puStack_88" (& "&") (identifier "puStack_88")) (, ",") (identifier "puVar22") (, ",") (identifier "uVar6") () ")"))))) (; ";")) (expression_statement "piVar4 = piVar19 + 2;" (assignment_expression "piVar4 = piVar19 + 2" (identifier "piVar4") (= "=") (binary_expression "piVar19 + 2" (identifier "piVar19") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*piVar3 = (int)(piVar3 + 2);" (assignment_expression "*piVar3 = (int)(piVar3 + 2)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (cast_expression "(int)(piVar3 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar3 + 2)" (( "(") (binary_expression "piVar3 + 2" (identifier "piVar3") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((int *)*piVar19 == piVar4) {\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }\n    else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" (if "if") (parenthesized_expression "((int *)*piVar19 == piVar4)" (( "(") (binary_expression "(int *)*piVar19 == piVar4" (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (== "==") (identifier "piVar4")) () ")")) (compound_statement "{\n      iVar16 = piVar19[3];\n      iVar20 = piVar19[4];\n      iVar15 = piVar19[5];\n      piVar3[2] = *piVar4;\n      piVar3[3] = iVar16;\n      piVar3[4] = iVar20;\n      piVar3[5] = iVar15;\n    }" ({ "{") (expression_statement "iVar16 = piVar19[3];" (assignment_expression "iVar16 = piVar19[3]" (identifier "iVar16") (= "=") (subscript_expression "piVar19[3]" (identifier "piVar19") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar20 = piVar19[4];" (assignment_expression "iVar20 = piVar19[4]" (identifier "iVar20") (= "=") (subscript_expression "piVar19[4]" (identifier "piVar19") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar15 = piVar19[5];" (assignment_expression "iVar15 = piVar19[5]" (identifier "iVar15") (= "=") (subscript_expression "piVar19[5]" (identifier "piVar19") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar3[2] = *piVar4;" (assignment_expression "piVar3[2] = *piVar4" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "piVar3[3] = iVar16;" (assignment_expression "piVar3[3] = iVar16" (subscript_expression "piVar3[3]" (identifier "piVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar16")) (; ";")) (expression_statement "piVar3[4] = iVar20;" (assignment_expression "piVar3[4] = iVar20" (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar20")) (; ";")) (expression_statement "piVar3[5] = iVar15;" (assignment_expression "piVar3[5] = iVar15" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (} "}")) (else_clause "else {\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" (else "else") (compound_statement "{\n      *piVar3 = *piVar19;\n      piVar3[2] = piVar19[2];\n    }" ({ "{") (expression_statement "*piVar3 = *piVar19;" (assignment_expression "*piVar3 = *piVar19" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) (; ";")) (expression_statement "piVar3[2] = piVar19[2];" (assignment_expression "piVar3[2] = piVar19[2]" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar19[2]" (identifier "piVar19") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "piVar3[1] = piVar19[1];" (assignment_expression "piVar3[1] = piVar19[1]" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*piVar19 = (int)piVar4;" (assignment_expression "*piVar19 = (int)piVar4" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "piVar19[1] = 0;" (assignment_expression "piVar19[1] = 0" (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar19 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar19 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar19 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar19 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar19 + 2)" (( "(") (binary_expression "piVar19 + 2" (identifier "piVar19") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puStack_88 != auStack_80) {\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }" (if "if") (parenthesized_expression "(puStack_88 != auStack_80)" (( "(") (binary_expression "puStack_88 != auStack_80" (identifier "puStack_88") (!= "!=") (identifier "auStack_80")) () ")")) (compound_statement "{\n      (**(code **)(pcVar26 + 0x1d3eb0))();\n    }" ({ "{") (expression_statement "(**(code **)(pcVar26 + 0x1d3eb0))();" (call_expression "(**(code **)(pcVar26 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eb0))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3eb0)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3eb0)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3eb0)" (( "(") (binary_expression "pcVar26 + 0x1d3eb0" (identifier "pcVar26") (+ "+") (number_literal "0x1d3eb0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}"))) (expression_statement "iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240" (identifier "iVar15") (= "=") (binary_expression "*(int *)(pcVar26 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(pcVar26 + 0x1d3fd8)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3fd8)" (( "(") (binary_expression "pcVar26 + 0x1d3fd8" (identifier "pcVar26") (+ "+") (number_literal "0x1d3fd8")) () ")")))) (+ "+") (number_literal "-0x6240"))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d40a4))();" (call_expression "(**(code **)(pcVar26 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d40a4))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d40a4)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d40a4)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d40a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d40a4)" (( "(") (binary_expression "pcVar26 + 0x1d40a4" (identifier "pcVar26") (+ "+") (number_literal "0x1d40a4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (puStack_88 != auStack_80) {\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }" (if "if") (parenthesized_expression "(puStack_88 != auStack_80)" (( "(") (binary_expression "puStack_88 != auStack_80" (identifier "puStack_88") (!= "!=") (identifier "auStack_80")) () ")")) (compound_statement "{\n    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);\n  }" ({ "{") (expression_statement "(**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);" (call_expression "(**(code **)(pcVar26 + 0x1d3eb0))(puStack_88)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eb0))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3eb0)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3eb0)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3eb0)" (( "(") (binary_expression "pcVar26 + 0x1d3eb0" (identifier "pcVar26") (+ "+") (number_literal "0x1d3eb0")) () ")"))))) () ")")) (argument_list "(puStack_88)" (( "(") (identifier "puStack_88") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);" (assignment_expression "pcVar26 = *(code **)(pcVar26 + 0x1d3e7c)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x1d3e7c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3e7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3e7c)" (( "(") (binary_expression "pcVar26 + 0x1d3e7c" (identifier "pcVar26") (+ "+") (number_literal "0x1d3e7c")) () ")"))))) (; ";")) (expression_statement "iVar20 = iVar15;" (assignment_expression "iVar20 = iVar15" (identifier "iVar20") (= "=") (identifier "iVar15")) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" (identifier "puVar21") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" (* "*") (cast_expression "(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" (( "(") (binary_expression "*(int *)(pcVar26 + 0x1d4da8) + -0x2830" (pointer_expression "*(int *)(pcVar26 + 0x1d4da8)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d4da8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d4da8)" (( "(") (binary_expression "pcVar26 + 0x1d4da8" (identifier "pcVar26") (+ "+") (number_literal "0x1d4da8")) () ")")))) (+ "+") (number_literal "-0x2830")) () ")"))))) (; ";")) (expression_statement "uVar23 = *(uint *)(iVar20 + 0x24);" (assignment_expression "uVar23 = *(uint *)(iVar20 + 0x24)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(iVar20 + 0x24)" (* "*") (cast_expression "(uint *)(iVar20 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x24)" (( "(") (binary_expression "iVar20 + 0x24" (identifier "iVar20") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iStack_c8 = iVar15;" (assignment_expression "iStack_c8 = iVar15" (identifier "iStack_c8") (= "=") (identifier "iVar15")) (; ";")) (expression_statement "puStack_c4 = auStack_80;" (assignment_expression "puStack_c4 = auStack_80" (identifier "puStack_c4") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "ppuStack_c0 = &puStack_88;" (assignment_expression "ppuStack_c0 = &puStack_88" (identifier "ppuStack_c0") (= "=") (pointer_expression "&puStack_88" (& "&") (identifier "puStack_88"))) (; ";")) (expression_statement "puStack_bc = puVar22;" (assignment_expression "puStack_bc = puVar22" (identifier "puStack_bc") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "pWStack_b8 = unaff_s4;" (assignment_expression "pWStack_b8 = unaff_s4" (identifier "pWStack_b8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "piStack_b4 = unaff_s5;" (assignment_expression "piStack_b4 = unaff_s5" (identifier "piStack_b4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_b0 = puVar24;" (assignment_expression "puStack_b0 = puVar24" (identifier "puStack_b0") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "(**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);" (call_expression "(**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21)" (parenthesized_expression "(**(code **)(*(int *)*puVar21 + 8))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar21 + 8)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar21 + 8)" (* "*") (cast_expression "(code **)(*(int *)*puVar21 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar21 + 8)" (( "(") (binary_expression "*(int *)*puVar21 + 8" (pointer_expression "*(int *)*puVar21" (* "*") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "((int *)*puVar21)" (( "(") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) () ")"))) (; ";")) (expression_statement "uVar6 = puVar21[2];" (assignment_expression "uVar6 = puVar21[2]" (identifier "uVar6") (= "=") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar6 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);" (assignment_expression "piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" (identifier "piVar3") (= "=") (pointer_expression "*(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" (* "*") (cast_expression "(int **)(puVar21[1] + (uVar23 % uVar6) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21[1] + (uVar23 % uVar6) * 4)" (( "(") (binary_expression "puVar21[1] + (uVar23 % uVar6) * 4" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "(uVar23 % uVar6) * 4" (parenthesized_expression "(uVar23 % uVar6)" (( "(") (binary_expression "uVar23 % uVar6" (identifier "uVar23") (% "%") (identifier "uVar6")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar3 != (int *)0x0) {\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }" (if "if") (parenthesized_expression "(piVar3 != (int *)0x0)" (( "(") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar12 = ((int *)*piVar3)[1];\n    piVar19 = (int *)*piVar3;\n    do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);\n  }" ({ "{") (expression_statement "uVar12 = ((int *)*piVar3)[1];" (assignment_expression "uVar12 = ((int *)*piVar3)[1]" (identifier "uVar12") (= "=") (subscript_expression "((int *)*piVar3)[1]" (parenthesized_expression "((int *)*piVar3)" (( "(") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar19 = (int *)*piVar3;" (assignment_expression "piVar19 = (int *)*piVar3" (identifier "piVar19") (= "=") (cast_expression "(int *)*piVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")))) (; ";")) (do_statement "do {\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    } while (uVar23 % uVar6 == uVar12 % uVar6);" (do "do") (compound_statement "{\n      piVar4 = piVar19;\n      if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }\n      piVar19 = (int *)*piVar4;\n      if (piVar19 == (int *)0x0) break;\n      uVar12 = piVar19[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3 = piVar4;\n    }" ({ "{") (expression_statement "piVar4 = piVar19;" (assignment_expression "piVar4 = piVar19" (identifier "piVar4") (= "=") (identifier "piVar19")) (; ";")) (if_statement "if (uVar23 == uVar12) {\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }" (if "if") (parenthesized_expression "(uVar23 == uVar12)" (( "(") (binary_expression "uVar23 == uVar12" (identifier "uVar23") (== "==") (identifier "uVar12")) () ")")) (compound_statement "{\n        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);\n        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }\n        goto LAB_0025e698;\n      }" ({ "{") (expression_statement "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);" (assignment_expression "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(*(int *)*puVar21 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*puVar21 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar21 + 0xc)" (( "(") (binary_expression "*(int *)*puVar21 + 0xc" (pointer_expression "*(int *)*puVar21" (* "*") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }" (if "if") (parenthesized_expression "((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0))" (( "(") (binary_expression "(*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)" (parenthesized_expression "(*piVar3 != 0)" (( "(") (binary_expression "*piVar3 != 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*piVar3 + 8) != 0)" (( "(") (binary_expression "*(int *)(*piVar3 + 8) != 0" (pointer_expression "*(int *)(*piVar3 + 8)" (* "*") (cast_expression "(int *)(*piVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + 8)" (( "(") (binary_expression "*piVar3 + 8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          piVar3 = (int *)(*pcVar28)();\n          return piVar3;\n        }" ({ "{") (expression_statement "piVar3 = (int *)(*pcVar28)();" (assignment_expression "piVar3 = (int *)(*pcVar28)()" (identifier "piVar3") (= "=") (cast_expression "(int *)(*pcVar28)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}"))) (goto_statement "goto LAB_0025e698;" (goto "goto") (statement_identifier "LAB_0025e698") (; ";")) (} "}"))) (expression_statement "piVar19 = (int *)*piVar4;" (assignment_expression "piVar19 = (int *)*piVar4" (identifier "piVar19") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (if_statement "if (piVar19 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar19 == (int *)0x0)" (( "(") (binary_expression "piVar19 == (int *)0x0" (identifier "piVar19") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = piVar19[1];" (assignment_expression "uVar12 = piVar19[1]" (identifier "uVar12") (= "=") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar3 = piVar4;" (assignment_expression "piVar3 = piVar4" (identifier "piVar3") (= "=") (identifier "piVar4")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar23 % uVar6 == uVar12 % uVar6)" (( "(") (binary_expression "uVar23 % uVar6 == uVar12 % uVar6" (binary_expression "uVar23 % uVar6" (identifier "uVar23") (% "%") (identifier "uVar6")) (== "==") (binary_expression "uVar12 % uVar6" (identifier "uVar12") (% "%") (identifier "uVar6"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);" (assignment_expression "pcVar28 = *(code **)(*(int *)*puVar21 + 0xc)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(*(int *)*puVar21 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*puVar21 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar21 + 0xc)" (( "(") (binary_expression "*(int *)*puVar21 + 0xc" (pointer_expression "*(int *)*puVar21" (* "*") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (labeled_statement "LAB_0025e698:\n  (*pcVar28)();" (statement_identifier "LAB_0025e698") (: ":") (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);" (assignment_expression "puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3dcc))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3dcc)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3dcc)" (( "(") (binary_expression "pcVar26 + 0x1d3dcc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3dcc")) () ")"))))) () ")")) (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "puStack_d4 = puVar7 + 7;" (assignment_expression "puStack_d4 = puVar7 + 7" (identifier "puStack_d4") (= "=") (binary_expression "puVar7 + 7" (identifier "puVar7") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "*puVar7 = uVar23;" (assignment_expression "*puVar7 = uVar23" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "iVar15 = *(int *)(pcVar26 + 0x1d3e44);" (assignment_expression "iVar15 = *(int *)(pcVar26 + 0x1d3e44)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar26 + 0x1d3e44)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3e44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3e44)" (( "(") (binary_expression "pcVar26 + 0x1d3e44" (identifier "pcVar26") (+ "+") (number_literal "0x1d3e44")) () ")"))))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d8260);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d8260)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x1d8260)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d8260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d8260)" (( "(") (binary_expression "pcVar26 + 0x1d8260" (identifier "pcVar26") (+ "+") (number_literal "0x1d8260")) () ")"))))) (; ";")) (expression_statement "puVar7[1] = (uint)puStack_d4;" (assignment_expression "puVar7[1] = (uint)puStack_d4" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puStack_d4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_d4"))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar15 + -0x636c);" (assignment_expression "uVar6 = *(uint *)(iVar15 + -0x636c)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)(iVar15 + -0x636c)" (* "*") (cast_expression "(uint *)(iVar15 + -0x636c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x636c)" (( "(") (binary_expression "iVar15 + -0x636c" (identifier "iVar15") (+ "+") (number_literal "-0x636c")) () ")"))))) (; ";")) (expression_statement "puVar7[4] = 0;" (assignment_expression "puVar7[4] = 0" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[7] = 0;" (assignment_expression "puVar7[7] = 0" (subscript_expression "puVar7[7]" (identifier "puVar7") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (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[6] = 0;" (assignment_expression "puVar7[6] = 0" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7[5] = uVar6;" (assignment_expression "puVar7[5] = uVar6" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar15 = (*pcVar28)(uVar23);" (assignment_expression "iVar15 = (*pcVar28)(uVar23)" (identifier "iVar15") (= "=") (call_expression "(*pcVar28)(uVar23)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(uVar23)" (( "(") (identifier "uVar23") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar3 == 2) goto LAB_0025e80c;\n    if (*piVar3 == 0x14) goto LAB_0025e80c;\n    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar6 = *puVar7;\n    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);\n    piVar3 = (int *)*puVar21;\n    goto LAB_0025e810;\n  }" ({ "{") (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))()" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d8394))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8394))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d8394)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d8394)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d8394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d8394)" (( "(") (binary_expression "pcVar26 + 0x1d8394" (identifier "pcVar26") (+ "+") (number_literal "0x1d8394")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (*piVar3 == 2) goto LAB_0025e80c;" (if "if") (parenthesized_expression "(*piVar3 == 2)" (( "(") (binary_expression "*piVar3 == 2" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0025e80c;" (goto "goto") (statement_identifier "LAB_0025e80c") (; ";"))) (if_statement "if (*piVar3 == 0x14) goto LAB_0025e80c;" (if "if") (parenthesized_expression "(*piVar3 == 0x14)" (( "(") (binary_expression "*piVar3 == 0x14" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0x14")) () ")")) (goto_statement "goto LAB_0025e80c;" (goto "goto") (statement_identifier "LAB_0025e80c") (; ";"))) (expression_statement "puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (identifier "puVar22") (= "=") (cast_expression "(uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d82a8))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d82a8)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d82a8)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d82a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d82a8)" (( "(") (binary_expression "pcVar26 + 0x1d82a8" (identifier "pcVar26") (+ "+") (number_literal "0x1d82a8")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (( "(") (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1318" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3cfc)" (( "(") (binary_expression "pcVar26 + 0x1d3cfc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3cfc")) () ")")))) (+ "+") (number_literal "0x1318")) () ")"))))) (; ";")) (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" (identifier "uVar6") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);" (assignment_expression "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*piVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8374))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d8374)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d8374)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d8374)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d8374)" (( "(") (binary_expression "pcVar26 + 0x1d8374" (identifier "pcVar26") (+ "+") (number_literal "0x1d8374")) () ")"))))) () ")")) (argument_list "(*piVar3)" (( "(") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);" (call_expression "(**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4814))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d4814)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d4814)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d4814)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d4814)" (( "(") (binary_expression "pcVar26 + 0x1d4814" (identifier "pcVar26") (+ "+") (number_literal "0x1d4814")) () ")"))))) () ")")) (argument_list "(puVar22,uVar6,uVar2)" (( "(") (identifier "puVar22") (, ",") (identifier "uVar6") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" (identifier "piVar3") (= "=") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (goto_statement "goto LAB_0025e810;" (goto "goto") (statement_identifier "LAB_0025e810") (; ";")) (} "}"))) (expression_statement "puStack_d8 = puVar7 + 3;" (assignment_expression "puStack_d8 = puVar7 + 3" (identifier "puStack_d8") (= "=") (binary_expression "puVar7 + 3" (identifier "puVar7") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar24 = &uStack_f0;" (assignment_expression "puVar24 = &uStack_f0" (identifier "puVar24") (= "=") (pointer_expression "&uStack_f0" (& "&") (identifier "uStack_f0"))) (; ";")) (expression_statement "pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" (identifier "pcStack_d0") (= "=") (cast_expression "(code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" (( "(") (binary_expression "*(int *)(pcVar26 + 0x1d71a4) + -0x1e58" (pointer_expression "*(int *)(pcVar26 + 0x1d71a4)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d71a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d71a4)" (( "(") (binary_expression "pcVar26 + 0x1d71a4" (identifier "pcVar26") (+ "+") (number_literal "0x1d71a4")) () ")")))) (+ "+") (number_literal "-0x1e58")) () ")")))) (; ";")) (labeled_statement "LAB_0025e720:\n  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (statement_identifier "LAB_0025e720") (: ":") (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d822c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d822c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d822c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d822c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d822c)" (( "(") (binary_expression "pcVar26 + 0x1d822c" (identifier "pcVar26") (+ "+") (number_literal "0x1d822c")) () ")"))))) () ")")) (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";"))) (if_statement "if (iVar20 == 0) goto LAB_0025e7f8;" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025e7f8;" (goto "goto") (statement_identifier "LAB_0025e7f8") (; ";"))) (do_statement "do {\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    iVar20 = iVar20 + 0x13;\n    puStack_f8 = puVar24;\n    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);\n    if (puVar7[2] == 0) {\n      trap(7);\n    }\n    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);\n    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);\n    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar3 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }\n  }" ({ "{") (expression_statement "iVar20 = iVar20 + 0x13;" (assignment_expression "iVar20 = iVar20 + 0x13" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 0x13" (identifier "iVar20") (+ "+") (number_literal "0x13"))) (; ";")) (expression_statement "puStack_f8 = puVar24;" (assignment_expression "puStack_f8 = puVar24" (identifier "puStack_f8") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);" (assignment_expression "iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20)" (identifier "iVar16") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d820c))(iVar20)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d820c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d820c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d820c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d820c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d820c)" (( "(") (binary_expression "pcVar26 + 0x1d820c" (identifier "pcVar26") (+ "+") (number_literal "0x1d820c")) () ")"))))) () ")")) (argument_list "(iVar20)" (( "(") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);" (call_expression "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3f18))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3f18)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3f18)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3f18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3f18)" (( "(") (binary_expression "pcVar26 + 0x1d3f18" (identifier "pcVar26") (+ "+") (number_literal "0x1d3f18")) () ")"))))) () ")")) (argument_list "(&puStack_f8,iVar20,iVar20 + iVar16,0)" (( "(") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8")) (, ",") (identifier "iVar20") (, ",") (binary_expression "iVar20 + iVar16" (identifier "iVar20") (+ "+") (identifier "iVar16")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);" (assignment_expression "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4af0))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d4af0)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d4af0)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d4af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d4af0)" (( "(") (binary_expression "pcVar26 + 0x1d4af0" (identifier "pcVar26") (+ "+") (number_literal "0x1d4af0")) () ")"))))) () ")")) (argument_list "(puStack_f8,uStack_f4,0xc70f6907)" (( "(") (identifier "puStack_f8") (, ",") (identifier "uStack_f4") (, ",") (number_literal "0xc70f6907") () ")"))))) (; ";")) (if_statement "if (puVar7[2] == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(puVar7[2] == 0)" (( "(") (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);" (assignment_expression "puVar22 = (uint *)((uint)unaff_s5 % puVar7[2])" (identifier "puVar22") (= "=") (cast_expression "(uint *)((uint)unaff_s5 % puVar7[2])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)unaff_s5 % puVar7[2])" (( "(") (binary_expression "(uint)unaff_s5 % puVar7[2]" (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5")) (% "%") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) () ")")))) (; ";")) (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d4f88))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d4f88)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d4f88)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d4f88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d4f88)" (( "(") (binary_expression "pcVar26 + 0x1d4f88" (identifier "pcVar26") (+ "+") (number_literal "0x1d4f88")) () ")"))))) () ")")) (argument_list "(puVar7 + 1,puVar22,&puStack_f8,unaff_s5)" (( "(") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1")) (, ",") (identifier "puVar22") (, ",") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8")) (, ",") (identifier "unaff_s5") () ")"))))) (; ";")) (if_statement "if (piVar3 == (int *)0x0) goto LAB_0025e8e0;" (if "if") (parenthesized_expression "(piVar3 == (int *)0x0)" (( "(") (binary_expression "piVar3 == (int *)0x0" (identifier "piVar3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025e8e0;" (goto "goto") (statement_identifier "LAB_0025e8e0") (; ";"))) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3dcc)" (( "(") (binary_expression "pcVar26 + 0x1d3dcc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3dcc")) () ")"))))) (; ";")) (if_statement "if (*piVar3 == 0) goto LAB_0025e8e4;" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025e8e4;" (goto "goto") (statement_identifier "LAB_0025e8e4") (; ";"))) (while_statement "while( true ) {\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (puStack_f8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);\n      if (iVar20 != 0) break;\nLAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);\n      if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);\n      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar6 = puVar21[2];\n      iVar20 = puVar21[1];\n      if (uVar6 == 0) {\n        trap(7);\n      }\n      piVar3[2] = (int)puVar7;\n      *piVar3 = 0;\n      piVar3[1] = uVar23;\n      puVar7 = (uint *)((uVar23 % uVar6) * 4);\n      piVar19 = *(int **)(iVar20 + (int)puVar7);\n      if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }\n      uVar12 = ((int *)*piVar19)[1];\n      piVar4 = (int *)*piVar19;\n      while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }\n      if (*piVar19 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);\n      uVar6 = uStack_f4;\n      *puVar8 = 0;\n      puVar8[1] = (uint)(puVar8 + 3);\n      if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }\n      uStack_cc = puVar7[6];\n      uVar17 = puVar7[4];\n      uVar12 = puVar7[2];\n      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_f4 = 0;\n      puVar8[2] = uVar6;\n      uStack_f0 = uStack_f0 & 0xffffff;\n      puStack_f8 = puVar24;\n      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);\n      uVar6 = uStack_dc;\n      if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }\n      puVar7[4] = puVar7[4] + 1;\n    }" ({ "{") (if_statement "if (puStack_f8 == puVar24) goto LAB_0025e720;" (if "if") (parenthesized_expression "(puStack_f8 == puVar24)" (( "(") (binary_expression "puStack_f8 == puVar24" (identifier "puStack_f8") (== "==") (identifier "puVar24")) () ")")) (goto_statement "goto LAB_0025e720;" (goto "goto") (statement_identifier "LAB_0025e720") (; ";"))) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3d1c)" (( "(") (binary_expression "pcVar26 + 0x1d3d1c" (identifier "pcVar26") (+ "+") (number_literal "0x1d3d1c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d822c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d822c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d822c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d822c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d822c)" (( "(") (binary_expression "pcVar26 + 0x1d822c" (identifier "pcVar26") (+ "+") (number_literal "0x1d822c")) () ")"))))) () ")")) (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) break;" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0025e7f8:\n      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);" (statement_identifier "LAB_0025e7f8") (: ":") (expression_statement "iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);" (assignment_expression "iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15)" (identifier "iVar20") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d81c8))(iVar15)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d81c8))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d81c8)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d81c8)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d81c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d81c8)" (( "(") (binary_expression "pcVar26 + 0x1d81c8" (identifier "pcVar26") (+ "+") (number_literal "0x1d81c8")) () ")"))))) () ")")) (argument_list "(iVar15)" (( "(") (identifier "iVar15") () ")")))) (; ";"))) (if_statement "if (iVar20 == 0) {\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }\n      else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0025e80c:\n        piVar3 = (int *)*puVar21;\n      }" ({ "{") (labeled_statement "LAB_0025e80c:\n        piVar3 = (int *)*puVar21;" (statement_identifier "LAB_0025e80c") (: ":") (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" (identifier "piVar3") (= "=") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";"))) (} "}")) (else_clause "else {\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" (else "else") (compound_statement "{\n        uVar6 = *puVar7;\n        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);\n        piVar3 = (int *)*puVar21;\n      }" ({ "{") (expression_statement "uVar6 = *puVar7;" (assignment_expression "uVar6 = *puVar7" (identifier "uVar6") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8394))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d8394)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d8394)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d8394)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d8394)" (( "(") (binary_expression "pcVar26 + 0x1d8394" (identifier "pcVar26") (+ "+") (number_literal "0x1d8394")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);" (assignment_expression "uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11)" (identifier "uVar2") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*puVar11)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d8374))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d8374)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d8374)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d8374)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d8374)" (( "(") (binary_expression "pcVar26 + 0x1d8374" (identifier "pcVar26") (+ "+") (number_literal "0x1d8374")) () ")"))))) () ")")) (argument_list "(*puVar11)" (( "(") (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);" (call_expression "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3eec))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3eec)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3eec)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3eec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3eec)" (( "(") (binary_expression "pcVar26 + 0x1d3eec" (identifier "pcVar26") (+ "+") (number_literal "0x1d3eec")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2)" (( "(") (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1338" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3cfc)" (( "(") (binary_expression "pcVar26 + 0x1d3cfc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3cfc")) () ")")))) (+ "+") (number_literal "0x1338")) (, ",") (identifier "uVar6") (, ",") (identifier "uVar2") () ")"))) (; ";")) (expression_statement "piVar3 = (int *)*puVar21;" (assignment_expression "piVar3 = (int *)*puVar21" (identifier "piVar3") (= "=") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (} "}")))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar3 + 8))(piVar3);" (statement_identifier "LAB_0025e810") (: ":") (expression_statement "(**(code **)(*piVar3 + 8))(piVar3);" (call_expression "(**(code **)(*piVar3 + 8))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 8))" (( "(") (pointer_expression "**(code **)(*piVar3 + 8)" (* "*") (pointer_expression "*(code **)(*piVar3 + 8)" (* "*") (cast_expression "(code **)(*piVar3 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 8)" (( "(") (binary_expression "*piVar3 + 8" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")"))) (; ";"))) (expression_statement "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);" (assignment_expression "piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3dcc))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3dcc)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3dcc)" (( "(") (binary_expression "pcVar26 + 0x1d3dcc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3dcc")) () ")"))))) () ")")) (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "uVar6 = puVar21[2];" (assignment_expression "uVar6 = puVar21[2]" (identifier "uVar6") (= "=") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar20 = puVar21[1];" (assignment_expression "iVar20 = puVar21[1]" (identifier "iVar20") (= "=") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar6 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        trap(7);\n      }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar3[2] = (int)puVar7;" (assignment_expression "piVar3[2] = (int)puVar7" (subscript_expression "piVar3[2]" (identifier "piVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) (; ";")) (expression_statement "*piVar3 = 0;" (assignment_expression "*piVar3 = 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3[1] = uVar23;" (assignment_expression "piVar3[1] = uVar23" (subscript_expression "piVar3[1]" (identifier "piVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "puVar7 = (uint *)((uVar23 % uVar6) * 4);" (assignment_expression "puVar7 = (uint *)((uVar23 % uVar6) * 4)" (identifier "puVar7") (= "=") (cast_expression "(uint *)((uVar23 % uVar6) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar23 % uVar6) * 4)" (( "(") (binary_expression "(uVar23 % uVar6) * 4" (parenthesized_expression "(uVar23 % uVar6)" (( "(") (binary_expression "uVar23 % uVar6" (identifier "uVar23") (% "%") (identifier "uVar6")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar19 = *(int **)(iVar20 + (int)puVar7);" (assignment_expression "piVar19 = *(int **)(iVar20 + (int)puVar7)" (identifier "piVar19") (= "=") (pointer_expression "*(int **)(iVar20 + (int)puVar7)" (* "*") (cast_expression "(int **)(iVar20 + (int)puVar7)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar20 + (int)puVar7)" (( "(") (binary_expression "iVar20 + (int)puVar7" (identifier "iVar20") (+ "+") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")"))))) (; ";")) (if_statement "if (piVar19 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }" (if "if") (parenthesized_expression "(piVar19 == (int *)0x0)" (( "(") (binary_expression "piVar19 == (int *)0x0" (identifier "piVar19") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);\n        uVar6 = uStack_f4;\n        if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }\n        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }\n        iVar15 = *(int *)*puVar21;\n        puVar21[4] = puVar21[4] + 1;\n        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);\n        return piVar3;\n      }" ({ "{") (labeled_statement "LAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);" (statement_identifier "LAB_0025eb6c") (: ":") (expression_statement "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);" (call_expression "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d45c0))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d45c0)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d45c0)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d45c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d45c0)" (( "(") (binary_expression "pcVar26 + 0x1d45c0" (identifier "pcVar26") (+ "+") (number_literal "0x1d45c0")) () ")"))))) () ")")) (argument_list "(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1)" (( "(") (pointer_expression "&puStack_f8" (& "&") (identifier "puStack_f8")) (, ",") (binary_expression "puVar21 + 5" (identifier "puVar21") (+ "+") (number_literal "5")) (, ",") (identifier "uVar6") (, ",") (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" (identifier "uVar6") (= "=") (identifier "uStack_f4")) (; ";")) (if_statement "if (puStack_f8._0_1_ == '\0') {\n          puVar11 = (undefined4 *)puVar21[1];\n        }\n        else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" (if "if") (parenthesized_expression "(puStack_f8._0_1_ == '\0')" (( "(") (binary_expression "puStack_f8._0_1_ == '\0'" (field_expression "puStack_f8._0_1_" (identifier "puStack_f8") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          puVar11 = (undefined4 *)puVar21[1];\n        }" ({ "{") (expression_statement "puVar11 = (undefined4 *)puVar21[1];" (assignment_expression "puVar11 = (undefined4 *)puVar21[1]" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)puVar21[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" (else "else") (compound_statement "{\n          if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }\n          piVar19 = (int *)puVar21[3];\n          puVar21[3] = 0;\n          if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar6 == 0) {\n            trap(7);\n          }\n          puVar21[2] = uVar6;\n          puVar21[1] = puVar11;\n          puVar7 = (uint *)(uVar23 % uVar6 << 2);\n        }" ({ "{") (if_statement "if (uStack_f4 == 1) {\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }\n          else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" (if "if") (parenthesized_expression "(uStack_f4 == 1)" (( "(") (binary_expression "uStack_f4 == 1" (identifier "uStack_f4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            puVar11 = puVar21 + 7;\n            puVar21[7] = 0;\n          }" ({ "{") (expression_statement "puVar11 = puVar21 + 7;" (assignment_expression "puVar11 = puVar21 + 7" (identifier "puVar11") (= "=") (binary_expression "puVar21 + 7" (identifier "puVar21") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar21[7] = 0;" (assignment_expression "puVar21[7] = 0" (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" (else "else") (compound_statement "{\n            puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);\n          }" ({ "{") (expression_statement "puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4);" (assignment_expression "puVar11 = (undefined4 *)FUN_0025e1a8(uStack_f4)" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)FUN_0025e1a8(uStack_f4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0025e1a8(uStack_f4)" (identifier "FUN_0025e1a8") (argument_list "(uStack_f4)" (( "(") (identifier "uStack_f4") () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar19 = (int *)puVar21[3];" (assignment_expression "piVar19 = (int *)puVar21[3]" (identifier "piVar19") (= "=") (cast_expression "(int *)puVar21[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar21[3] = 0;" (assignment_expression "puVar21[3] = 0" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar19 != (int *)0x0) {\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }" (if "if") (parenthesized_expression "(piVar19 != (int *)0x0)" (( "(") (binary_expression "piVar19 != (int *)0x0" (identifier "piVar19") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar12 = 0;\n            do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);\n          }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            } while (piVar4 != (int *)0x0);" (do "do") (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = (uint)piVar19[1] % uVar6;\n              puVar14 = puVar11 + uVar17;\n              piVar4 = (int *)*piVar19;\n              if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }\n              piVar19 = piVar4;\n              uVar12 = uVar17;\n            }" ({ "{") (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar17 = (uint)piVar19[1] % uVar6;" (assignment_expression "uVar17 = (uint)piVar19[1] % uVar6" (identifier "uVar17") (= "=") (binary_expression "(uint)piVar19[1] % uVar6" (cast_expression "(uint)piVar19[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (% "%") (identifier "uVar6"))) (; ";")) (expression_statement "puVar14 = puVar11 + uVar17;" (assignment_expression "puVar14 = puVar11 + uVar17" (identifier "puVar14") (= "=") (binary_expression "puVar11 + uVar17" (identifier "puVar11") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "piVar4 = (int *)*piVar19;" (assignment_expression "piVar4 = (int *)*piVar19" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (if_statement "if ((int *)*puVar14 == (int *)0x0) {\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }\n              else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" (if "if") (parenthesized_expression "((int *)*puVar14 == (int *)0x0)" (( "(") (binary_expression "(int *)*puVar14 == (int *)0x0" (cast_expression "(int *)*puVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                *piVar19 = puVar21[3];\n                puVar21[3] = piVar19;\n                *puVar14 = puVar21 + 3;\n                if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }\n              }" ({ "{") (expression_statement "*piVar19 = puVar21[3];" (assignment_expression "*piVar19 = puVar21[3]" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar21[3] = piVar19;" (assignment_expression "puVar21[3] = piVar19" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar19")) (; ";")) (expression_statement "*puVar14 = puVar21 + 3;" (assignment_expression "*puVar14 = puVar21 + 3" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "puVar21 + 3" (identifier "puVar21") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (*piVar19 != 0) {\n                  puVar11[uVar12] = piVar19;\n                }" (if "if") (parenthesized_expression "(*piVar19 != 0)" (( "(") (binary_expression "*piVar19 != 0" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  puVar11[uVar12] = piVar19;\n                }" ({ "{") (expression_statement "puVar11[uVar12] = piVar19;" (assignment_expression "puVar11[uVar12] = piVar19" (subscript_expression "puVar11[uVar12]" (identifier "puVar11") ([ "[") (identifier "uVar12") (] "]")) (= "=") (identifier "piVar19")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" (else "else") (compound_statement "{\n                *piVar19 = *(int *)*puVar14;\n                *(int **)*puVar14 = piVar19;\n                uVar17 = uVar12;\n              }" ({ "{") (expression_statement "*piVar19 = *(int *)*puVar14;" (assignment_expression "*piVar19 = *(int *)*puVar14" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (pointer_expression "*(int *)*puVar14" (* "*") (cast_expression "(int *)*puVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))))) (; ";")) (expression_statement "*(int **)*puVar14 = piVar19;" (assignment_expression "*(int **)*puVar14 = piVar19" (pointer_expression "*(int **)*puVar14" (* "*") (cast_expression "(int **)*puVar14" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar14" (* "*") (identifier "puVar14")))) (= "=") (identifier "piVar19")) (; ";")) (expression_statement "uVar17 = uVar12;" (assignment_expression "uVar17 = uVar12" (identifier "uVar17") (= "=") (identifier "uVar12")) (; ";")) (} "}")))) (expression_statement "piVar19 = piVar4;" (assignment_expression "piVar19 = piVar4" (identifier "piVar19") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" (identifier "uVar12") (= "=") (identifier "uVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar4 != (int *)0x0)" (( "(") (binary_expression "piVar4 != (int *)0x0" (identifier "piVar4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((undefined4 *)puVar21[1] != puVar21 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" (if "if") (parenthesized_expression "((undefined4 *)puVar21[1] != puVar21 + 7)" (( "(") (binary_expression "(undefined4 *)puVar21[1] != puVar21 + 7" (cast_expression "(undefined4 *)puVar21[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (binary_expression "puVar21 + 7" (identifier "puVar21") (+ "+") (number_literal "7"))) () ")")) (compound_statement "{\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" ({ "{") (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3d1c)" (( "(") (binary_expression "pcVar26 + 0x1d3d1c" (identifier "pcVar26") (+ "+") (number_literal "0x1d3d1c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar6 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar21[2] = uVar6;" (assignment_expression "puVar21[2] = uVar6" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar21[1] = puVar11;" (assignment_expression "puVar21[1] = puVar11" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar11")) (; ";")) (expression_statement "puVar7 = (uint *)(uVar23 % uVar6 << 2);" (assignment_expression "puVar7 = (uint *)(uVar23 % uVar6 << 2)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(uVar23 % uVar6 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar23 % uVar6 << 2)" (( "(") (binary_expression "uVar23 % uVar6 << 2" (binary_expression "uVar23 % uVar6" (identifier "uVar23") (% "%") (identifier "uVar6")) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (} "}")))) (if_statement "if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }\n        else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" (if "if") (parenthesized_expression "(*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0)" (( "(") (binary_expression "*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0" (pointer_expression "*(int **)((int)puVar11 + (int)puVar7)" (* "*") (cast_expression "(int **)((int)puVar11 + (int)puVar7)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar11 + (int)puVar7)" (( "(") (binary_expression "(int)puVar11 + (int)puVar7" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")")))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *piVar3 = puVar21[3];\n          puVar21[3] = piVar3;\n          if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }\n          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;\n        }" ({ "{") (expression_statement "*piVar3 = puVar21[3];" (assignment_expression "*piVar3 = puVar21[3]" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar21[3] = piVar3;" (assignment_expression "puVar21[3] = piVar3" (subscript_expression "puVar21[3]" (identifier "puVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar3")) (; ";")) (if_statement "if (*piVar3 == 0) {\n            iVar15 = puVar21[1];\n          }\n          else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar15 = puVar21[1];\n          }" ({ "{") (expression_statement "iVar15 = puVar21[1];" (assignment_expression "iVar15 = puVar21[1]" (identifier "iVar15") (= "=") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" (else "else") (compound_statement "{\n            iVar15 = puVar21[1];\n            if (puVar21[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;\n          }" ({ "{") (expression_statement "iVar15 = puVar21[1];" (assignment_expression "iVar15 = puVar21[1]" (identifier "iVar15") (= "=") (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (puVar21[2] == 0) {\n              trap(7);\n            }" (if "if") (parenthesized_expression "(puVar21[2] == 0)" (( "(") (binary_expression "puVar21[2] == 0" (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              trap(7);\n            }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;" (assignment_expression "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3" (pointer_expression "*(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" (* "*") (cast_expression "(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4)" (( "(") (binary_expression "iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4" (identifier "iVar15") (+ "+") (binary_expression "(*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar3 + 4) % (uint)puVar21[2])" (( "(") (binary_expression "*(uint *)(*piVar3 + 4) % (uint)puVar21[2]" (pointer_expression "*(uint *)(*piVar3 + 4)" (* "*") (cast_expression "(uint *)(*piVar3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar3 + 4)" (( "(") (binary_expression "*piVar3 + 4" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "4")) () ")")))) (% "%") (cast_expression "(uint)puVar21[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar21[2]" (identifier "puVar21") ([ "[") (number_literal "2") (] "]")))) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "piVar3")) (; ";")) (} "}")))) (expression_statement "*(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;" (assignment_expression "*(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3" (pointer_expression "*(undefined4 **)(iVar15 + (int)puVar7)" (* "*") (cast_expression "(undefined4 **)(iVar15 + (int)puVar7)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + (int)puVar7)" (( "(") (binary_expression "iVar15 + (int)puVar7" (identifier "iVar15") (+ "+") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")")))) (= "=") (binary_expression "puVar21 + 3" (identifier "puVar21") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" (else "else") (compound_statement "{\n          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);\n          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;\n        }" ({ "{") (expression_statement "*piVar3 = **(int **)((int)puVar11 + (int)puVar7);" (assignment_expression "*piVar3 = **(int **)((int)puVar11 + (int)puVar7)" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (= "=") (pointer_expression "**(int **)((int)puVar11 + (int)puVar7)" (* "*") (pointer_expression "*(int **)((int)puVar11 + (int)puVar7)" (* "*") (cast_expression "(int **)((int)puVar11 + (int)puVar7)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar11 + (int)puVar7)" (( "(") (binary_expression "(int)puVar11 + (int)puVar7" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")")))))) (; ";")) (expression_statement "**(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;" (assignment_expression "**(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3" (pointer_expression "**(undefined4 **)(puVar21[1] + (int)puVar7)" (* "*") (pointer_expression "*(undefined4 **)(puVar21[1] + (int)puVar7)" (* "*") (cast_expression "(undefined4 **)(puVar21[1] + (int)puVar7)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21[1] + (int)puVar7)" (( "(") (binary_expression "puVar21[1] + (int)puVar7" (subscript_expression "puVar21[1]" (identifier "puVar21") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)puVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar7"))) () ")"))))) (= "=") (identifier "piVar3")) (; ";")) (} "}")))) (expression_statement "iVar15 = *(int *)*puVar21;" (assignment_expression "iVar15 = *(int *)*puVar21" (identifier "iVar15") (= "=") (pointer_expression "*(int *)*puVar21" (* "*") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))))) (; ";")) (expression_statement "puVar21[4] = puVar21[4] + 1;" (assignment_expression "puVar21[4] = puVar21[4] + 1" (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar21[4] + 1" (subscript_expression "puVar21[4]" (identifier "puVar21") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);" (assignment_expression "piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21)" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar15 + 0xc))((int *)*puVar21)" (parenthesized_expression "(**(code **)(iVar15 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar15 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar15 + 0xc)" (* "*") (cast_expression "(code **)(iVar15 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar15 + 0xc)" (( "(") (binary_expression "iVar15 + 0xc" (identifier "iVar15") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)*puVar21)" (( "(") (cast_expression "(int *)*puVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21"))) () ")"))))) (; ";")) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}"))) (expression_statement "uVar12 = ((int *)*piVar19)[1];" (assignment_expression "uVar12 = ((int *)*piVar19)[1]" (identifier "uVar12") (= "=") (subscript_expression "((int *)*piVar19)[1]" (parenthesized_expression "((int *)*piVar19)" (( "(") (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar4 = (int *)*piVar19;" (assignment_expression "piVar4 = (int *)*piVar19" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar19" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (while_statement "while (piVar13 = piVar4, uVar23 != uVar12) {\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }" (while "while") (parenthesized_expression "(piVar13 = piVar4, uVar23 != uVar12)" (( "(") (comma_expression "piVar13 = piVar4, uVar23 != uVar12" (assignment_expression "piVar13 = piVar4" (identifier "piVar13") (= "=") (identifier "piVar4")) (, ",") (binary_expression "uVar23 != uVar12" (identifier "uVar23") (!= "!=") (identifier "uVar12"))) () ")")) (compound_statement "{\n        piVar4 = (int *)*piVar13;\n        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;\n        uVar12 = piVar4[1];\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        piVar19 = piVar13;\n        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;\n      }" ({ "{") (expression_statement "piVar4 = (int *)*piVar13;" (assignment_expression "piVar4 = (int *)*piVar13" (identifier "piVar4") (= "=") (cast_expression "(int *)*piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar13" (* "*") (identifier "piVar13")))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) goto LAB_0025eb6c;" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025eb6c;" (goto "goto") (statement_identifier "LAB_0025eb6c") (; ";"))) (expression_statement "uVar12 = piVar4[1];" (assignment_expression "uVar12 = piVar4[1]" (identifier "uVar12") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          trap(7);\n        }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar19 = piVar13;" (assignment_expression "piVar19 = piVar13" (identifier "piVar19") (= "=") (identifier "piVar13")) (; ";")) (if_statement "if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;" (if "if") (parenthesized_expression "(uVar23 % uVar6 != uVar12 % uVar6)" (( "(") (binary_expression "uVar23 % uVar6 != uVar12 % uVar6" (binary_expression "uVar23 % uVar6" (identifier "uVar23") (% "%") (identifier "uVar6")) (!= "!=") (binary_expression "uVar12 % uVar6" (identifier "uVar12") (% "%") (identifier "uVar6"))) () ")")) (goto_statement "goto LAB_0025eb6c;" (goto "goto") (statement_identifier "LAB_0025eb6c") (; ";"))) (} "}"))) (if_statement "if (*piVar19 == 0) goto LAB_0025eb6c;" (if "if") (parenthesized_expression "(*piVar19 == 0)" (( "(") (binary_expression "*piVar19 == 0" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025eb6c;" (goto "goto") (statement_identifier "LAB_0025eb6c") (; ";"))) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))(piVar3);" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))(piVar3)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3d1c)" (( "(") (binary_expression "pcVar26 + 0x1d3d1c" (identifier "pcVar26") (+ "+") (number_literal "0x1d3d1c")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);" (call_expression "(**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394)" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3e54))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3e54)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3e54)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3e54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3e54)" (( "(") (binary_expression "pcVar26 + 0x1d3e54" (identifier "pcVar26") (+ "+") (number_literal "0x1d3e54")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394)" (( "(") (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3cfc)" (( "(") (binary_expression "pcVar26 + 0x1d3cfc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3cfc")) () ")")))) (+ "+") (number_literal "0x12f0")) (, ",") (number_literal "0x97") (, ",") (binary_expression "*(int *)(pcVar26 + 0x1d3cfc) + 0x1394" (pointer_expression "*(int *)(pcVar26 + 0x1d3cfc)" (* "*") (cast_expression "(int *)(pcVar26 + 0x1d3cfc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3cfc)" (( "(") (binary_expression "pcVar26 + 0x1d3cfc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3cfc")) () ")")))) (+ "+") (number_literal "0x1394")) () ")"))) (; ";")) (labeled_statement "LAB_0025e8e0:\n      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (statement_identifier "LAB_0025e8e0") (: ":") (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d3dcc)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x1d3dcc)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3dcc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3dcc)" (( "(") (binary_expression "pcVar26 + 0x1d3dcc" (identifier "pcVar26") (+ "+") (number_literal "0x1d3dcc")) () ")"))))) (; ";"))) (labeled_statement "LAB_0025e8e4:\n      puVar8 = (uint *)(*pcVar28)(0x20);" (statement_identifier "LAB_0025e8e4") (: ":") (expression_statement "puVar8 = (uint *)(*pcVar28)(0x20);" (assignment_expression "puVar8 = (uint *)(*pcVar28)(0x20)" (identifier "puVar8") (= "=") (cast_expression "(uint *)(*pcVar28)(0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar28)(0x20)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";"))) (expression_statement "uVar6 = uStack_f4;" (assignment_expression "uVar6 = uStack_f4" (identifier "uVar6") (= "=") (identifier "uStack_f4")) (; ";")) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[1] = (uint)(puVar8 + 3);" (assignment_expression "puVar8[1] = (uint)(puVar8 + 3)" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(uint)(puVar8 + 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar8 + 3)" (( "(") (binary_expression "puVar8 + 3" (identifier "puVar8") (+ "+") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (puStack_f8 == puVar24) {\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }\n      else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" (if "if") (parenthesized_expression "(puStack_f8 == puVar24)" (( "(") (binary_expression "puStack_f8 == puVar24" (identifier "puStack_f8") (== "==") (identifier "puVar24")) () ")")) (compound_statement "{\n        puVar8[3] = uStack_f0;\n        puVar8[4] = uStack_ec;\n        puVar8[5] = uStack_e8;\n        puVar8[6] = uStack_e4;\n      }" ({ "{") (expression_statement "puVar8[3] = uStack_f0;" (assignment_expression "puVar8[3] = uStack_f0" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_f0")) (; ";")) (expression_statement "puVar8[4] = uStack_ec;" (assignment_expression "puVar8[4] = uStack_ec" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uStack_ec")) (; ";")) (expression_statement "puVar8[5] = uStack_e8;" (assignment_expression "puVar8[5] = uStack_e8" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uStack_e8")) (; ";")) (expression_statement "puVar8[6] = uStack_e4;" (assignment_expression "puVar8[6] = uStack_e4" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_e4")) (; ";")) (} "}")) (else_clause "else {\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" (else "else") (compound_statement "{\n        puVar8[1] = (uint)puStack_f8;\n        puVar8[3] = uStack_f0;\n      }" ({ "{") (expression_statement "puVar8[1] = (uint)puStack_f8;" (assignment_expression "puVar8[1] = (uint)puStack_f8" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puStack_f8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_f8"))) (; ";")) (expression_statement "puVar8[3] = uStack_f0;" (assignment_expression "puVar8[3] = uStack_f0" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_f0")) (; ";")) (} "}")))) (expression_statement "uStack_cc = puVar7[6];" (assignment_expression "uStack_cc = puVar7[6]" (identifier "uStack_cc") (= "=") (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar17 = puVar7[4];" (assignment_expression "uVar17 = puVar7[4]" (identifier "uVar17") (= "=") (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar12 = puVar7[2];" (assignment_expression "uVar12 = puVar7[2]" (identifier "uVar12") (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar28 = *(code **)(pcVar26 + 0x1d45c0);" (assignment_expression "pcVar28 = *(code **)(pcVar26 + 0x1d45c0)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar26 + 0x1d45c0)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d45c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d45c0)" (( "(") (binary_expression "pcVar26 + 0x1d45c0" (identifier "pcVar26") (+ "+") (number_literal "0x1d45c0")) () ")"))))) (; ";")) (expression_statement "uStack_f4 = 0;" (assignment_expression "uStack_f4 = 0" (identifier "uStack_f4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8[2] = uVar6;" (assignment_expression "puVar8[2] = uVar6" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uStack_f0 = uStack_f0 & 0xffffff;" (assignment_expression "uStack_f0 = uStack_f0 & 0xffffff" (identifier "uStack_f0") (= "=") (binary_expression "uStack_f0 & 0xffffff" (identifier "uStack_f0") (& "&") (number_literal "0xffffff"))) (; ";")) (expression_statement "puStack_f8 = puVar24;" (assignment_expression "puStack_f8 = puVar24" (identifier "puStack_f8") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "(*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);" (call_expression "(*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(acStack_e0,puVar7 + 5,uVar12,uVar17,1)" (( "(") (identifier "acStack_e0") (, ",") (binary_expression "puVar7 + 5" (identifier "puVar7") (+ "+") (number_literal "5")) (, ",") (identifier "uVar12") (, ",") (identifier "uVar17") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar6 = uStack_dc;" (assignment_expression "uVar6 = uStack_dc" (identifier "uVar6") (= "=") (identifier "uStack_dc")) (; ";")) (if_statement "if (acStack_e0[0] == '\0') {\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }\n      else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" (if "if") (parenthesized_expression "(acStack_e0[0] == '\0')" (( "(") (binary_expression "acStack_e0[0] == '\0'" (subscript_expression "acStack_e0[0]" (identifier "acStack_e0") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        puVar9 = (uint *)puVar7[1];\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (int)puVar22;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar6 = puVar7[3];\n        puVar7[3] = (uint)puVar8;\n        *puVar8 = uVar6;\n        if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }\n        *puVar22 = (uint)puStack_d8;\n      }" ({ "{") (expression_statement "puVar9 = (uint *)puVar7[1];" (assignment_expression "puVar9 = (uint *)puVar7[1]" (identifier "puVar9") (= "=") (cast_expression "(uint *)puVar7[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar8[7] = (uint)unaff_s5;" (assignment_expression "puVar8[7] = (uint)unaff_s5" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5"))) (; ";")) (expression_statement "puVar22 = puVar9 + (int)puVar22;" (assignment_expression "puVar22 = puVar9 + (int)puVar22" (identifier "puVar22") (= "=") (binary_expression "puVar9 + (int)puVar22" (identifier "puVar9") (+ "+") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")))) (; ";")) (expression_statement "puVar10 = (uint *)*puVar22;" (assignment_expression "puVar10 = (uint *)*puVar22" (identifier "puVar10") (= "=") (cast_expression "(uint *)*puVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")))) (; ";")) (if_statement "if (puVar10 != (uint *)0x0) goto LAB_0025ea48;" (if "if") (parenthesized_expression "(puVar10 != (uint *)0x0)" (( "(") (binary_expression "puVar10 != (uint *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025ea48;" (goto "goto") (statement_identifier "LAB_0025ea48") (; ";"))) (labeled_statement "LAB_0025ea84:\n        uVar6 = puVar7[3];" (statement_identifier "LAB_0025ea84") (: ":") (expression_statement "uVar6 = puVar7[3];" (assignment_expression "uVar6 = puVar7[3]" (identifier "uVar6") (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (expression_statement "puVar7[3] = (uint)puVar8;" (assignment_expression "puVar7[3] = (uint)puVar8" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)puVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar8"))) (; ";")) (expression_statement "*puVar8 = uVar6;" (assignment_expression "*puVar8 = uVar6" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (uVar6 != 0) {\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }" (if "if") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (puVar7[2] == 0) {\n            trap(7);\n          }\n          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;\n        }" ({ "{") (if_statement "if (puVar7[2] == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(puVar7[2] == 0)" (( "(") (binary_expression "puVar7[2] == 0" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;" (assignment_expression "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8" (subscript_expression "puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]]" (identifier "puVar9") ([ "[") (binary_expression "*(uint *)(uVar6 + 0x1c) % puVar7[2]" (pointer_expression "*(uint *)(uVar6 + 0x1c)" (* "*") (cast_expression "(uint *)(uVar6 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 + 0x1c)" (( "(") (binary_expression "uVar6 + 0x1c" (identifier "uVar6") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (] "]")) (= "=") (cast_expression "(uint)puVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar8"))) (; ";")) (} "}"))) (expression_statement "*puVar22 = (uint)puStack_d8;" (assignment_expression "*puVar22 = (uint)puStack_d8" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (cast_expression "(uint)puStack_d8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_d8"))) (; ";")) (} "}")) (else_clause "else {\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" (else "else") (compound_statement "{\n        if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }\n        puVar22 = (uint *)puVar7[3];\n        puVar7[3] = 0;\n        if (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar6 == 0) {\n          trap(7);\n        }\n        puVar7[2] = uVar6;\n        puVar7[1] = (uint)puVar9;\n        puVar8[7] = (uint)unaff_s5;\n        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;\n        puVar10 = (uint *)*puVar22;\n        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar8 = *puVar10;\n        *(uint **)*puVar22 = puVar8;\n      }" ({ "{") (if_statement "if (uStack_dc == 1) {\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\n        }\n        else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" (if "if") (parenthesized_expression "(uStack_dc == 1)" (( "(") (binary_expression "uStack_dc == 1" (identifier "uStack_dc") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          puVar7[7] = 0;\n          puVar9 = puStack_d4;\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 "puVar9 = puStack_d4;" (assignment_expression "puVar9 = puStack_d4" (identifier "puVar9") (= "=") (identifier "puStack_d4")) (; ";")) (} "}")) (else_clause "else {\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" (else "else") (compound_statement "{\n          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);\n        }" ({ "{") (expression_statement "puVar9 = (uint *)(*pcStack_d0)(uStack_dc);" (assignment_expression "puVar9 = (uint *)(*pcStack_d0)(uStack_dc)" (identifier "puVar9") (= "=") (cast_expression "(uint *)(*pcStack_d0)(uStack_dc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcStack_d0)(uStack_dc)" (parenthesized_expression "(*pcStack_d0)" (( "(") (pointer_expression "*pcStack_d0" (* "*") (identifier "pcStack_d0")) () ")")) (argument_list "(uStack_dc)" (( "(") (identifier "uStack_dc") () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar22 = (uint *)puVar7[3];" (assignment_expression "puVar22 = (uint *)puVar7[3]" (identifier "puVar22") (= "=") (cast_expression "(uint *)puVar7[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (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 (puVar22 != (uint *)0x0) {\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }" (if "if") (parenthesized_expression "(puVar22 != (uint *)0x0)" (( "(") (binary_expression "puVar22 != (uint *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar12 = 0;\n          do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          } while (puVar18 != (uint *)0x0);" (do "do") (compound_statement "{\n            while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar22 = puVar7[3];\n            puVar7[3] = (uint)puVar22;\n            *puVar10 = (uint)puStack_d8;\n            if (*puVar22 == 0) goto LAB_0025e9a0;\n            puVar9[uVar12] = (uint)puVar22;\n            puVar22 = puVar18;\n            uVar12 = uVar17;\n          }" ({ "{") (while_statement "while( true ) {\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if (uVar6 == 0) {\n                trap(7);\n              }\n              uVar17 = puVar22[7] % uVar6;\n              puVar10 = puVar9 + uVar17;\n              puVar18 = (uint *)*puVar22;\n              if ((uint *)*puVar10 == (uint *)0x0) break;\n              *puVar22 = *(uint *)*puVar10;\n              *(uint **)*puVar10 = puVar22;\n              uVar17 = uVar12;\nLAB_0025e9a0:\n              puVar22 = puVar18;\n              uVar12 = uVar17;\n              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;\n            }" ({ "{") (if_statement "if (uVar6 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar17 = puVar22[7] % uVar6;" (assignment_expression "uVar17 = puVar22[7] % uVar6" (identifier "uVar17") (= "=") (binary_expression "puVar22[7] % uVar6" (subscript_expression "puVar22[7]" (identifier "puVar22") ([ "[") (number_literal "7") (] "]")) (% "%") (identifier "uVar6"))) (; ";")) (expression_statement "puVar10 = puVar9 + uVar17;" (assignment_expression "puVar10 = puVar9 + uVar17" (identifier "puVar10") (= "=") (binary_expression "puVar9 + uVar17" (identifier "puVar9") (+ "+") (identifier "uVar17"))) (; ";")) (expression_statement "puVar18 = (uint *)*puVar22;" (assignment_expression "puVar18 = (uint *)*puVar22" (identifier "puVar18") (= "=") (cast_expression "(uint *)*puVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")))) (; ";")) (if_statement "if ((uint *)*puVar10 == (uint *)0x0) break;" (if "if") (parenthesized_expression "((uint *)*puVar10 == (uint *)0x0)" (( "(") (binary_expression "(uint *)*puVar10 == (uint *)0x0" (cast_expression "(uint *)*puVar10" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*puVar22 = *(uint *)*puVar10;" (assignment_expression "*puVar22 = *(uint *)*puVar10" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*(uint *)*puVar10" (* "*") (cast_expression "(uint *)*puVar10" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))))) (; ";")) (expression_statement "*(uint **)*puVar10 = puVar22;" (assignment_expression "*(uint **)*puVar10 = puVar22" (pointer_expression "*(uint **)*puVar10" (* "*") (cast_expression "(uint **)*puVar10" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) (= "=") (identifier "puVar22")) (; ";")) (expression_statement "uVar17 = uVar12;" (assignment_expression "uVar17 = uVar12" (identifier "uVar17") (= "=") (identifier "uVar12")) (; ";")) (labeled_statement "LAB_0025e9a0:\n              puVar22 = puVar18;" (statement_identifier "LAB_0025e9a0") (: ":") (expression_statement "puVar22 = puVar18;" (assignment_expression "puVar22 = puVar18" (identifier "puVar22") (= "=") (identifier "puVar18")) (; ";"))) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" (identifier "uVar12") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (puVar18 == (uint *)0x0) goto LAB_0025ea00;" (if "if") (parenthesized_expression "(puVar18 == (uint *)0x0)" (( "(") (binary_expression "puVar18 == (uint *)0x0" (identifier "puVar18") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025ea00;" (goto "goto") (statement_identifier "LAB_0025ea00") (; ";"))) (} "}"))) (expression_statement "*puVar22 = puVar7[3];" (assignment_expression "*puVar22 = puVar7[3]" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar7[3] = (uint)puVar22;" (assignment_expression "puVar7[3] = (uint)puVar22" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)puVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar22"))) (; ";")) (expression_statement "*puVar10 = (uint)puStack_d8;" (assignment_expression "*puVar10 = (uint)puStack_d8" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (cast_expression "(uint)puStack_d8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_d8"))) (; ";")) (if_statement "if (*puVar22 == 0) goto LAB_0025e9a0;" (if "if") (parenthesized_expression "(*puVar22 == 0)" (( "(") (binary_expression "*puVar22 == 0" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025e9a0;" (goto "goto") (statement_identifier "LAB_0025e9a0") (; ";"))) (expression_statement "puVar9[uVar12] = (uint)puVar22;" (assignment_expression "puVar9[uVar12] = (uint)puVar22" (subscript_expression "puVar9[uVar12]" (identifier "puVar9") ([ "[") (identifier "uVar12") (] "]")) (= "=") (cast_expression "(uint)puVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar22"))) (; ";")) (expression_statement "puVar22 = puVar18;" (assignment_expression "puVar22 = puVar18" (identifier "puVar22") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "uVar12 = uVar17;" (assignment_expression "uVar12 = uVar17" (identifier "uVar12") (= "=") (identifier "uVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar18 != (uint *)0x0)" (( "(") (binary_expression "puVar18 != (uint *)0x0" (identifier "puVar18") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0025ea00:\n        if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" (statement_identifier "LAB_0025ea00") (: ":") (if_statement "if (puStack_d4 != (uint *)puVar7[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" (if "if") (parenthesized_expression "(puStack_d4 != (uint *)puVar7[1])" (( "(") (binary_expression "puStack_d4 != (uint *)puVar7[1]" (identifier "puStack_d4") (!= "!=") (cast_expression "(uint *)puVar7[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")))) () ")")) (compound_statement "{\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" ({ "{") (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar26 + 0x1d3d1c))" (( "(") (pointer_expression "**(code **)(pcVar26 + 0x1d3d1c)" (* "*") (pointer_expression "*(code **)(pcVar26 + 0x1d3d1c)" (* "*") (cast_expression "(code **)(pcVar26 + 0x1d3d1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar26 + 0x1d3d1c)" (( "(") (binary_expression "pcVar26 + 0x1d3d1c" (identifier "pcVar26") (+ "+") (number_literal "0x1d3d1c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (uVar6 == 0) {\n          trap(7);\n        }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          trap(7);\n        }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar7[2] = uVar6;" (assignment_expression "puVar7[2] = uVar6" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar7[1] = (uint)puVar9;" (assignment_expression "puVar7[1] = (uint)puVar9" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar9"))) (; ";")) (expression_statement "puVar8[7] = (uint)unaff_s5;" (assignment_expression "puVar8[7] = (uint)unaff_s5" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5"))) (; ";")) (expression_statement "puVar22 = puVar9 + (uint)unaff_s5 % uVar6;" (assignment_expression "puVar22 = puVar9 + (uint)unaff_s5 % uVar6" (identifier "puVar22") (= "=") (binary_expression "puVar9 + (uint)unaff_s5 % uVar6" (identifier "puVar9") (+ "+") (binary_expression "(uint)unaff_s5 % uVar6" (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5")) (% "%") (identifier "uVar6")))) (; ";")) (expression_statement "puVar10 = (uint *)*puVar22;" (assignment_expression "puVar10 = (uint *)*puVar22" (identifier "puVar10") (= "=") (cast_expression "(uint *)*puVar22" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")))) (; ";")) (if_statement "if (puVar10 == (uint *)0x0) goto LAB_0025ea84;" (if "if") (parenthesized_expression "(puVar10 == (uint *)0x0)" (( "(") (binary_expression "puVar10 == (uint *)0x0" (identifier "puVar10") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0025ea84;" (goto "goto") (statement_identifier "LAB_0025ea84") (; ";"))) (labeled_statement "LAB_0025ea48:\n        *puVar8 = *puVar10;" (statement_identifier "LAB_0025ea48") (: ":") (expression_statement "*puVar8 = *puVar10;" (assignment_expression "*puVar8 = *puVar10" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";"))) (expression_statement "*(uint **)*puVar22 = puVar8;" (assignment_expression "*(uint **)*puVar22 = puVar8" (pointer_expression "*(uint **)*puVar22" (* "*") (cast_expression "(uint **)*puVar22" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")))) (= "=") (identifier "puVar8")) (; ";")) (} "}")))) (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"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* DWARF original prototype: __bucket_type *
   _M_allocate_buckets(_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
   * this, size_t __n) */

var_1 * var_2
var_3::__detail::
var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
::var_39
          (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
           *var_11,size_t __n)

{
  var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
  var_9;
  var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
  *var_41;
  type_1 uVar3;
  var_1 *var_17;
  var_1 *var_19;
  type_2 *t;
  type_3 var_22;
  type_1 *var_24;
  type_3 *var_34;
  int var_28;
  int var_35;
  type_3 *var_44;
  type_3 *var_45;
  type_3 *var_46;
  type_1 *puVar14;
  type_3 var_32;
  int *var_43;
  type_4 *var_40;
  int *piVar18;
  var_1 p_Var19;
  int *var_31;
  int *var_33;
  type_1 *in_a2;
  int var_15;
  var_1 p_Var23;
  type_4 *var_42;
  var_1 p_Var25;
  type_3 *var_50;
  var_1 *var_16;
  type_3 var_14;
  var_1 var_25;
  type_2 *unaff_s3;
  type_3 *var_48;
  type_5 *unaff_s4;
  type_3 var_30;
  var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
  *unaff_s5;
  type_3 *var_37;
  type_6 *var_12;
  type_7 *var_21;
  type_6 *var_20;
  type_7 *pcVar35;
  type_3 var_49;
  type_3 *var_36;
  var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
  *var_38;
  type_3 uStack_f0;
  type_3 uStack_ec;
  type_3 uStack_e8;
  type_3 uStack_e4;
  char acStack_e0 [4];
  type_3 var_47;
  type_3 *puStack_d8;
  type_3 *var_51;
  type_7 *pcStack_d0;
  type_3 uStack_cc;
  int iStack_c8;
  type_8 *puStack_c4;
  type_8 **ppuStack_c0;
  type_3 *puStack_bc;
  type_5 *pWStack_b8;
  var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
  *p_Stack_b4;
  type_3 *puStack_b0;
  type_8 *var_26;
  int var_23;
  type_8 var_27 [20];
  var_1 *pp_Stack_6c;
  type_3 uStack_68;
  type_2 *pTStack_60;
  type_7 *pcStack_5c;
  type_6 *var_13;
  
  if (var_11 < (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
              *)0x40000000) {
    uVar3 = (*(type_7 *)PTR_operator_new_0043233c)((int)var_11 << 2);
    var_17 = (var_1 *)(*(type_7 *)PTR_memset_00436850)(uVar3,0,(int)var_11 << 2);
    return var_17;
  }
  var_12 = PTR___throw_bad_alloc_00432404;
  (*(type_7 *)PTR___throw_bad_alloc_00432404)();
  var_20 = var_12 + 0x1dbfbc;
  var_37 = *(type_3 **)(var_12 + 0x1d5104);
  var_13 = var_20;
  if (var_37[-0xa0c] == 0) {
    var_14 = (**(type_7 **)(var_12 + 0x1d4128))(0x20);
    (**(type_7 **)(var_13 + -0x61a0))(var_14);
    var_16 = (var_1 *)*in_a2;
    unaff_s3 = (type_2 *)(var_11 + 4);
    var_17 = (var_1 *)in_a2[1];
    var_9 = var_11[4];
    var_15 = *(int *)(var_13 + -0x7e1c);
    *(type_3 *)(var_14 + 4) = var_14 + 0x1c;
    *(type_1 *)(var_14 + 0x10) = 0;
    uVar3 = *(type_1 *)(var_15 + -0x636c);
    *(type_1 *)(var_14 + 8) = 1;
    *(type_1 *)(var_14 + 0x1c) = 0;
    *(type_1 *)(var_14 + 0xc) = 0;
    *(type_1 *)(var_14 + 0x18) = 0;
    var_37[-0xa0c] = var_14;
    *(type_1 **)var_11 = in_a2;
    *(type_1 *)(var_14 + 0x14) = uVar3;
    unaff_s4 = (type_5 *)__n;
    unaff_s5 = var_11;
    var_20 = var_13;
    if (var_9 != (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
                  )0x0) {
      *(type_1 *)(var_11 + 0xc) = 0;
      var_19 = (var_1 *)
                (*(int *)(var_11 + 8) + ((int)var_17 - (int)var_16 >> 2) * -0x49249249);
      *(var_1 **)(var_11 + 8) = var_19;
      if (var_16 != var_17) {
        var_15 = *(int *)(var_13 + -0x7fd8);
        do {
          var_25 = *var_16;
          var_16 = var_16 + 7;
          t = (type_2 *)(**(type_7 **)(var_13 + -0x7e94))(0x2c);
          t->list_next_ = (type_2 *)0x0;
          (t->name_)._M_dataplus._M_p = (pointer)&(t->name_).field_2;
          (t->name_)._M_string_length = 0;
          (t->name_).field_2._M_local_buf[0] = '\0';
          t->should_run_soon_ = false;
          t->_vptr_Task = (type_9 **)(var_15 + -0x6d48);
          t[1]._vptr_Task = (type_9 **)var_25;
          t[1].list_next_ = unaff_s3;
          gold::Workqueue::var_18((type_5 *)__n,t);
          var_19 = (var_1 *)in_a2[1];
        } while (var_19 != var_16);
      }
      return var_19;
    }
  }
  else {
    (**(type_7 **)(var_12 + 0x1d41b0))
              (*(int *)(var_12 + 0x1d4058) + 0x12f0,0xe7,*(int *)(var_12 + 0x1d4058) + 0x13a8);
  }
  var_16 = (var_1 *)(*(int *)(var_20 + -0x7fc4) + 0x48a0);
  (**(type_7 **)(var_20 + -0x7e0c))(var_16,0x97,*(int *)(var_20 + -0x7f64) + 0x1398);
  var_15 = 0x20;
  (**(type_7 **)(var_13 + -0x7e10))(var_14);
  var_21 = *(type_7 **)(var_13 + -0x7f78);
  pcVar35 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;
  var_17 = var_16;
  (*var_21)();
  var_26 = var_27;
  pp_Stack_6c = var_16;
  uStack_68 = var_14;
  pTStack_60 = unaff_s3;
  pcStack_5c = pcVar35;
  (**(type_7 **)(var_21 + 0x1d40ac))
            (&var_26,*(int *)(var_21 + 0x1d3e90) + 0x1308,*(int *)(var_21 + 0x1d3e90) + 0x1317
             ,0);
  var_48 = *(type_3 **)(var_15 + 0x24);
  var_22 = (**(type_7 **)(var_21 + 0x1d83a0))(var_48);
  if (var_22 <= 0x7fffffffU - var_23) {
    var_24 = (type_1 *)(**(type_7 **)(var_21 + 0x1d4874))(&var_26,var_48,var_22);
    var_25 = (var_1)(var_24 + 2);
    *var_17 = (var_1)(var_17 + 2);
    if ((var_1)*var_24 == var_25) {
      p_Var25 = (var_1)var_24[3];
      p_Var23 = (var_1)var_24[4];
      p_Var19 = (var_1)var_24[5];
      ((var_1)(var_17 + 2))->_M_nxt = var_25->_M_nxt;
      var_17[3] = p_Var25;
      var_17[4] = p_Var23;
      var_17[5] = p_Var19;
    }
    else {
      *var_17 = (var_1)*var_24;
      var_17[2] = (var_1)var_24[2];
    }
    var_17[1] = (var_1)var_24[1];
    *var_24 = var_25;
    var_24[1] = 0;
    *(type_8 *)(var_24 + 2) = 0;
    if (var_26 != var_27) {
      (**(type_7 **)(var_21 + 0x1d3eb0))();
    }
    return var_17;
  }
  var_15 = *(int *)(var_21 + 0x1d3fd8) + -0x6240;
  (**(type_7 **)(var_21 + 0x1d40a4))();
  if (var_26 != var_27) {
    (**(type_7 **)(var_21 + 0x1d3eb0))(var_26);
  }
  var_21 = *(type_7 **)(var_21 + 0x1d3e7c);
  var_28 = var_15;
  (*var_21)();
  var_24 = *(type_1 **)(*(int *)(var_21 + 0x1d4da8) + -0x2830);
  var_30 = *(type_3 *)(var_28 + 0x24);
  iStack_c8 = var_15;
  puStack_c4 = var_27;
  ppuStack_c0 = &var_26;
  puStack_bc = var_48;
  pWStack_b8 = unaff_s4;
  p_Stack_b4 = unaff_s5;
  puStack_b0 = var_37;
  (**(type_7 **)(*(int *)*var_24 + 8))((int *)*var_24);
  var_22 = var_24[2];
  if (var_22 == 0) {
    var_29(7);
  }
  var_31 = *(int **)(var_24[1] + (var_30 % var_22) * 4);
  if (var_31 != (int *)0x0) {
    var_32 = ((int *)*var_31)[1];
    var_33 = (int *)*var_31;
    do {
      var_43 = var_33;
      if (var_30 == var_32) {
        pcVar35 = *(type_7 **)(*(int *)*var_24 + 0xc);
        if ((*var_31 != 0) && (*(int *)(*var_31 + 8) != 0)) {
          var_17 = (var_1 *)(*pcVar35)();
          return var_17;
        }
        goto LAB_0025e698;
      }
      var_33 = (int *)*var_43;
      if (var_33 == (int *)0x0) break;
      var_32 = var_33[1];
      if (var_22 == 0) {
        var_29(7);
      }
      var_31 = var_43;
    } while (var_30 % var_22 == var_32 % var_22);
  }
  pcVar35 = *(type_7 **)(*(int *)*var_24 + 0xc);
LAB_0025e698:
  (*pcVar35)();
  var_34 = (type_3 *)(**(type_7 **)(var_21 + 0x1d3dcc))(0x20);
  var_51 = var_34 + 7;
  *var_34 = var_30;
  var_15 = *(int *)(var_21 + 0x1d3e44);
  pcVar35 = *(type_7 **)(var_21 + 0x1d8260);
  var_34[1] = (type_3)var_51;
  var_22 = *(type_3 *)(var_15 + -0x636c);
  var_34[4] = 0;
  var_34[7] = 0;
  var_34[2] = 1;
  var_34[3] = 0;
  var_34[6] = 0;
  var_34[5] = var_22;
  var_15 = (*pcVar35)(var_30);
  if (var_15 == 0) {
    var_31 = (int *)(**(type_7 **)(var_21 + 0x1d8394))();
    if (*var_31 == 2) goto LAB_0025e80c;
    if (*var_31 == 0x14) goto LAB_0025e80c;
    var_48 = (type_3 *)(**(type_7 **)(var_21 + 0x1d82a8))(*(int *)(var_21 + 0x1d3cfc) + 0x1318);
    var_22 = *var_34;
    uVar3 = (**(type_7 **)(var_21 + 0x1d8374))(*var_31);
    (**(type_7 **)(var_21 + 0x1d4814))(var_48,var_22,uVar3);
    var_31 = (int *)*var_24;
    goto LAB_0025e810;
  }
  puStack_d8 = var_34 + 3;
  var_37 = &uStack_f0;
  pcStack_d0 = (type_7 *)(*(int *)(var_21 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  var_28 = (**(type_7 **)(var_21 + 0x1d822c))(var_15);
  if (var_28 == 0) goto LAB_0025e7f8;
  do {
    var_28 = var_28 + 0x13;
    var_36 = var_37;
    var_35 = (**(type_7 **)(var_21 + 0x1d820c))(var_28);
    (**(type_7 **)(var_21 + 0x1d3f18))(&var_36,var_28,var_28 + var_35,0);
    unaff_s5 = (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
                *)(**(type_7 **)(var_21 + 0x1d4af0))(var_36,var_38,0xc70f6907);
    if (var_34[2] == 0) {
      var_29(7);
    }
    var_48 = (type_3 *)((type_3)unaff_s5 % var_34[2]);
    var_31 = (int *)(**(type_7 **)(var_21 + 0x1d4f88))(var_34 + 1,var_48,&var_36,unaff_s5);
    if (var_31 == (int *)0x0) goto LAB_0025e8e0;
    pcVar35 = *(type_7 **)(var_21 + 0x1d3dcc);
    if (*var_31 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (var_36 == var_37) goto LAB_0025e720;
      (**(type_7 **)(var_21 + 0x1d3d1c))();
      var_28 = (**(type_7 **)(var_21 + 0x1d822c))(var_15);
      if (var_28 != 0) break;
LAB_0025e7f8:
      var_28 = (**(type_7 **)(var_21 + 0x1d81c8))(var_15);
      if (var_28 == 0) {
LAB_0025e80c:
        var_31 = (int *)*var_24;
      }
      else {
        var_22 = *var_34;
        puVar14 = (type_1 *)(**(type_7 **)(var_21 + 0x1d8394))();
        uVar3 = (**(type_7 **)(var_21 + 0x1d8374))(*puVar14);
        (**(type_7 **)(var_21 + 0x1d3eec))(*(int *)(var_21 + 0x1d3cfc) + 0x1338,var_22,uVar3);
        var_31 = (int *)*var_24;
      }
LAB_0025e810:
      (**(type_7 **)(*var_31 + 8))(var_31);
      var_31 = (int *)(**(type_7 **)(var_21 + 0x1d3dcc))(0xc);
      var_22 = var_24[2];
      var_28 = var_24[1];
      if (var_22 == 0) {
        var_29(7);
      }
      var_31[2] = (int)var_34;
      *var_31 = 0;
      var_31[1] = var_30;
      var_34 = (type_3 *)((var_30 % var_22) * 4);
      var_33 = *(int **)(var_28 + (int)var_34);
      if (var_33 == (int *)0x0) {
LAB_0025eb6c:
        puVar14 = var_24 + 5;
        (**(type_7 **)(var_21 + 0x1d45c0))(&var_36,puVar14,var_22,var_24[4],1);
        var_41 = var_38;
        if (var_36._0_1_ == '\0') {
          var_17 = (var_1 *)var_24[1];
        }
        else {
          if (var_38 ==
              (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
               *)0x1) {
            var_17 = (var_1 *)(var_24 + 7);
            var_24[7] = 0;
          }
          else {
            var_17 = var_39(var_38,(size_t)puVar14);
          }
          var_40 = (type_4 *)var_24[3];
          var_24[3] = 0;
          if (var_40 != (type_4 *)0x0) {
            var_22 = 0;
            do {
              if (var_41 == (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
                             *)0x0) {
                var_29(7);
              }
              var_32 = (type_3)var_40[1]._M_nxt % (type_3)var_41;
              var_16 = var_17 + var_32;
              var_42 = var_40->_M_nxt;
              if (*var_16 == (var_1)0x0) {
                var_40->_M_nxt = (type_4 *)var_24[3];
                var_24[3] = var_40;
                *var_16 = (var_1)(var_24 + 3);
                if (var_40->_M_nxt != (type_4 *)0x0) {
                  var_17[var_22] = var_40;
                }
              }
              else {
                var_40->_M_nxt = (*var_16)->_M_nxt;
                (*var_16)->_M_nxt = var_40;
                var_32 = var_22;
              }
              var_40 = var_42;
              var_22 = var_32;
            } while (var_42 != (type_4 *)0x0);
          }
          if ((type_1 *)var_24[1] != var_24 + 7) {
            (**(type_7 **)(var_21 + 0x1d3d1c))();
          }
          if (var_41 == (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
                         *)0x0) {
            var_29(7);
          }
          var_24[2] = var_41;
          var_24[1] = var_17;
          var_34 = (type_3 *)(var_30 % (type_3)var_41 << 2);
        }
        if (*(int **)((int)var_17 + (int)var_34) == (int *)0x0) {
          *var_31 = var_24[3];
          var_24[3] = var_31;
          if (*var_31 == 0) {
            var_15 = var_24[1];
          }
          else {
            var_15 = var_24[1];
            if (var_24[2] == 0) {
              var_29(7);
            }
            *(int **)(var_15 + (*(type_3 *)(*var_31 + 4) % (type_3)var_24[2]) * 4) = var_31;
          }
          *(type_1 **)(var_15 + (int)var_34) = var_24 + 3;
        }
        else {
          *var_31 = **(int **)((int)var_17 + (int)var_34);
          **(type_1 **)(var_24[1] + (int)var_34) = var_31;
        }
        var_15 = *(int *)*var_24;
        var_24[4] = var_24[4] + 1;
        var_17 = (var_1 *)(**(type_7 **)(var_15 + 0xc))((int *)*var_24);
        return var_17;
      }
      var_32 = ((int *)*var_33)[1];
      var_43 = (int *)*var_33;
      while (piVar18 = var_43, var_30 != var_32) {
        var_43 = (int *)*piVar18;
        if (var_43 == (int *)0x0) goto LAB_0025eb6c;
        var_32 = var_43[1];
        if (var_22 == 0) {
          var_29(7);
        }
        var_33 = piVar18;
        if (var_30 % var_22 != var_32 % var_22) goto LAB_0025eb6c;
      }
      if (*var_33 == 0) goto LAB_0025eb6c;
      (**(type_7 **)(var_21 + 0x1d3d1c))(var_31);
      (**(type_7 **)(var_21 + 0x1d3e54))
                (*(int *)(var_21 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(var_21 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar35 = *(type_7 **)(var_21 + 0x1d3dcc);
LAB_0025e8e4:
      var_44 = (type_3 *)(*pcVar35)(0x20);
      var_41 = var_38;
      *var_44 = 0;
      var_44[1] = (type_3)(var_44 + 3);
      if (var_36 == var_37) {
        var_44[3] = uStack_f0;
        var_44[4] = uStack_ec;
        var_44[5] = uStack_e8;
        var_44[6] = uStack_e4;
      }
      else {
        var_44[1] = (type_3)var_36;
        var_44[3] = uStack_f0;
      }
      uStack_cc = var_34[6];
      var_32 = var_34[4];
      var_22 = var_34[2];
      pcVar35 = *(type_7 **)(var_21 + 0x1d45c0);
      var_38 = (var_8<var_3::var_10<var_3::__detail::_Hash_node<var_3::__cxx11::basic_string<var_4,var_5::char_traits<var_4>,var_5::var_10<var_4>var_6>,var_7>var_6>var_6>
                    *)0x0;
      var_44[2] = (type_3)var_41;
      uStack_f0 = uStack_f0 & 0xffffff;
      var_36 = var_37;
      (*pcVar35)(acStack_e0,var_34 + 5,var_22,var_32,1);
      var_22 = var_47;
      if (acStack_e0[0] == '\0') {
        var_45 = (type_3 *)var_34[1];
        var_44[7] = (type_3)unaff_s5;
        var_48 = var_45 + (int)var_48;
        var_46 = (type_3 *)*var_48;
        if (var_46 != (type_3 *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        var_22 = var_34[3];
        var_34[3] = (type_3)var_44;
        *var_44 = var_22;
        if (var_22 != 0) {
          if (var_34[2] == 0) {
            var_29(7);
          }
          var_45[*(type_3 *)(var_22 + 0x1c) % var_34[2]] = (type_3)var_44;
        }
        *var_48 = (type_3)puStack_d8;
      }
      else {
        if (var_47 == 1) {
          var_34[7] = 0;
          var_45 = var_51;
        }
        else {
          var_45 = (type_3 *)(*pcStack_d0)(var_47);
        }
        var_48 = (type_3 *)var_34[3];
        var_34[3] = 0;
        if (var_48 != (type_3 *)0x0) {
          var_32 = 0;
          do {
            while( true ) {
              if (var_22 == 0) {
                var_29(7);
              }
              var_49 = var_48[7] % var_22;
              var_46 = var_45 + var_49;
              var_50 = (type_3 *)*var_48;
              if ((type_3 *)*var_46 == (type_3 *)0x0) break;
              *var_48 = *(type_3 *)*var_46;
              *(type_3 **)*var_46 = var_48;
              var_49 = var_32;
LAB_0025e9a0:
              var_48 = var_50;
              var_32 = var_49;
              if (var_50 == (type_3 *)0x0) goto LAB_0025ea00;
            }
            *var_48 = var_34[3];
            var_34[3] = (type_3)var_48;
            *var_46 = (type_3)puStack_d8;
            if (*var_48 == 0) goto LAB_0025e9a0;
            var_45[var_32] = (type_3)var_48;
            var_48 = var_50;
            var_32 = var_49;
          } while (var_50 != (type_3 *)0x0);
        }
LAB_0025ea00:
        if (var_51 != (type_3 *)var_34[1]) {
          (**(type_7 **)(var_21 + 0x1d3d1c))();
        }
        if (var_22 == 0) {
          var_29(7);
        }
        var_34[2] = var_22;
        var_34[1] = (type_3)var_45;
        var_44[7] = (type_3)unaff_s5;
        var_48 = var_45 + (type_3)unaff_s5 % var_22;
        var_46 = (type_3 *)*var_48;
        if (var_46 == (type_3 *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *var_44 = *var_46;
        *(type_3 **)*var_48 = var_44;
      }
      var_34[4] = var_34[4] + 1;
    }
  } while( true );
}


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

int * MASKED(int *param_1,Workqueue *param_2,int *param_3)

{
  char cVar1;
  undefined4 uVar2;
  int *piVar3;
  int *piVar4;
  Task *pTVar5;
  uint uVar6;
  uint *puVar7;
  uint *puVar8;
  uint *puVar9;
  uint *puVar10;
  undefined4 *puVar11;
  uint uVar12;
  int *piVar13;
  undefined4 *puVar14;
  int iVar15;
  int iVar16;
  uint uVar17;
  uint *puVar18;
  int *piVar19;
  uint unaff_s1;
  int iVar20;
  int *unaff_s2;
  undefined4 *puVar21;
  int *unaff_s3;
  uint *puVar22;
  Workqueue *unaff_s4;
  uint uVar23;
  int *unaff_s5;
  uint *puVar24;
  undefined *puVar25;
  code *pcVar26;
  undefined *puVar27;
  code *pcVar28;
  uint *puStack_f8;
  uint uStack_f4;
  uint uStack_f0;
  uint uStack_ec;
  uint uStack_e8;
  uint uStack_e4;
  char acStack_e0 [4];
  uint uStack_dc;
  uint *puStack_d8;
  uint *puStack_d4;
  code *pcStack_d0;
  uint uStack_cc;
  int iStack_c8;
  undefined1 *puStack_c4;
  undefined1 **ppuStack_c0;
  uint *puStack_bc;
  Workqueue *pWStack_b8;
  int *piStack_b4;
  uint *puStack_b0;
  undefined1 *puStack_88;
  int iStack_84;
  undefined1 auStack_80 [20];
  int *piStack_6c;
  uint uStack_68;
  int *piStack_64;
  int *piStack_60;
  code *pcStack_5c;
  undefined *puStack_48;
  
  if (param_1 < (int *)0x40000000) {
    uVar2 = (*(code *)PTR_operator_new_0043233c)((int)param_1 << 2);
    piVar3 = (int *)(*(code *)PTR_memset_00436850)(uVar2,0,(int)param_1 << 2);
    return piVar3;
  }
  puVar25 = PTR___throw_bad_alloc_00432404;
  (*(code *)PTR___throw_bad_alloc_00432404)();
  puVar27 = puVar25 + 0x1dbfbc;
  puVar24 = *(uint **)(puVar25 + 0x1d5104);
  puStack_48 = puVar27;
  if (puVar24[-0xa0c] == 0) {
    unaff_s1 = (**(code **)(puVar25 + 0x1d4128))(0x20);
    (**(code **)(puStack_48 + -0x61a0))(unaff_s1);
    piVar19 = (int *)*param_3;
    unaff_s3 = param_1 + 1;
    piVar3 = (int *)param_3[1];
    cVar1 = *(char *)(param_1 + 1);
    iVar15 = *(int *)(puStack_48 + -0x7e1c);
    *(uint *)(unaff_s1 + 4) = unaff_s1 + 0x1c;
    *(undefined4 *)(unaff_s1 + 0x10) = 0;
    uVar2 = *(undefined4 *)(iVar15 + -0x636c);
    *(undefined4 *)(unaff_s1 + 8) = 1;
    *(undefined4 *)(unaff_s1 + 0x1c) = 0;
    *(undefined4 *)(unaff_s1 + 0xc) = 0;
    *(undefined4 *)(unaff_s1 + 0x18) = 0;
    puVar24[-0xa0c] = unaff_s1;
    *param_1 = (int)param_3;
    *(undefined4 *)(unaff_s1 + 0x14) = uVar2;
    unaff_s2 = param_3;
    unaff_s4 = param_2;
    unaff_s5 = param_1;
    puVar27 = puStack_48;
    if (cVar1 != '\0') {
      param_1[3] = 0;
      piVar4 = (int *)(param_1[2] + ((int)piVar3 - (int)piVar19 >> 2) * -0x49249249);
      param_1[2] = (int)piVar4;
      if (piVar19 != piVar3) {
        iVar15 = *(int *)(puStack_48 + -0x7fd8);
        do {
          iVar20 = *piVar19;
          piVar19 = piVar19 + 7;
          pTVar5 = (Task *)(**(code **)(puStack_48 + -0x7e94))(0x2c);
          *(undefined4 *)(pTVar5 + 4) = 0;
          *(Task **)(pTVar5 + 8) = pTVar5 + 0x10;
          *(undefined4 *)(pTVar5 + 0xc) = 0;
          pTVar5[0x10] = (Task)0x0;
          pTVar5[0x20] = (Task)0x0;
          *(int *)pTVar5 = iVar15 + -0x6d48;
          *(int *)(pTVar5 + 0x24) = iVar20;
          *(int **)(pTVar5 + 0x28) = unaff_s3;
          gold::Workqueue::queue(param_2,pTVar5);
          piVar4 = (int *)param_3[1];
        } while (piVar4 != piVar19);
      }
      return piVar4;
    }
  }
  else {
    (**(code **)(puVar25 + 0x1d41b0))
              (*(int *)(puVar25 + 0x1d4058) + 0x12f0,0xe7,*(int *)(puVar25 + 0x1d4058) + 0x13a8);
  }
  piVar19 = (int *)(*(int *)(puVar27 + -0x7fc4) + 0x48a0);
  (**(code **)(puVar27 + -0x7e0c))(piVar19,0x97,*(int *)(puVar27 + -0x7f64) + 0x1398);
  iVar15 = 0x20;
  (**(code **)(puStack_48 + -0x7e10))(unaff_s1);
  pcVar26 = *(code **)(puStack_48 + -0x7f78);
  pcVar28 = FUN_0025e3dc;
  piVar3 = piVar19;
  (*pcVar26)();
  puStack_88 = auStack_80;
  piStack_6c = piVar19;
  uStack_68 = unaff_s1;
  piStack_64 = unaff_s2;
  piStack_60 = unaff_s3;
  pcStack_5c = pcVar28;
  (**(code **)(pcVar26 + 0x1d40ac))
            (&puStack_88,*(int *)(pcVar26 + 0x1d3e90) + 0x1308,*(int *)(pcVar26 + 0x1d3e90) + 0x1317
             ,0);
  puVar22 = *(uint **)(iVar15 + 0x24);
  uVar6 = (**(code **)(pcVar26 + 0x1d83a0))(puVar22);
  if (uVar6 <= 0x7fffffffU - iStack_84) {
    piVar19 = (int *)(**(code **)(pcVar26 + 0x1d4874))(&puStack_88,puVar22,uVar6);
    piVar4 = piVar19 + 2;
    *piVar3 = (int)(piVar3 + 2);
    if ((int *)*piVar19 == piVar4) {
      iVar16 = piVar19[3];
      iVar20 = piVar19[4];
      iVar15 = piVar19[5];
      piVar3[2] = *piVar4;
      piVar3[3] = iVar16;
      piVar3[4] = iVar20;
      piVar3[5] = iVar15;
    }
    else {
      *piVar3 = *piVar19;
      piVar3[2] = piVar19[2];
    }
    piVar3[1] = piVar19[1];
    *piVar19 = (int)piVar4;
    piVar19[1] = 0;
    *(undefined1 *)(piVar19 + 2) = 0;
    if (puStack_88 != auStack_80) {
      (**(code **)(pcVar26 + 0x1d3eb0))();
    }
    return piVar3;
  }
  iVar15 = *(int *)(pcVar26 + 0x1d3fd8) + -0x6240;
  (**(code **)(pcVar26 + 0x1d40a4))();
  if (puStack_88 != auStack_80) {
    (**(code **)(pcVar26 + 0x1d3eb0))(puStack_88);
  }
  pcVar26 = *(code **)(pcVar26 + 0x1d3e7c);
  iVar20 = iVar15;
  (*pcVar26)();
  puVar21 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);
  uVar23 = *(uint *)(iVar20 + 0x24);
  iStack_c8 = iVar15;
  puStack_c4 = auStack_80;
  ppuStack_c0 = &puStack_88;
  puStack_bc = puVar22;
  pWStack_b8 = unaff_s4;
  piStack_b4 = unaff_s5;
  puStack_b0 = puVar24;
  (**(code **)(*(int *)*puVar21 + 8))((int *)*puVar21);
  uVar6 = puVar21[2];
  if (uVar6 == 0) {
    trap(7);
  }
  piVar3 = *(int **)(puVar21[1] + (uVar23 % uVar6) * 4);
  if (piVar3 != (int *)0x0) {
    uVar12 = ((int *)*piVar3)[1];
    piVar19 = (int *)*piVar3;
    do {
      piVar4 = piVar19;
      if (uVar23 == uVar12) {
        pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);
        if ((*piVar3 != 0) && (*(int *)(*piVar3 + 8) != 0)) {
          piVar3 = (int *)(*pcVar28)();
          return piVar3;
        }
        goto LAB_0025e698;
      }
      piVar19 = (int *)*piVar4;
      if (piVar19 == (int *)0x0) break;
      uVar12 = piVar19[1];
      if (uVar6 == 0) {
        trap(7);
      }
      piVar3 = piVar4;
    } while (uVar23 % uVar6 == uVar12 % uVar6);
  }
  pcVar28 = *(code **)(*(int *)*puVar21 + 0xc);
LAB_0025e698:
  (*pcVar28)();
  puVar7 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);
  puStack_d4 = puVar7 + 7;
  *puVar7 = uVar23;
  iVar15 = *(int *)(pcVar26 + 0x1d3e44);
  pcVar28 = *(code **)(pcVar26 + 0x1d8260);
  puVar7[1] = (uint)puStack_d4;
  uVar6 = *(uint *)(iVar15 + -0x636c);
  puVar7[4] = 0;
  puVar7[7] = 0;
  puVar7[2] = 1;
  puVar7[3] = 0;
  puVar7[6] = 0;
  puVar7[5] = uVar6;
  iVar15 = (*pcVar28)(uVar23);
  if (iVar15 == 0) {
    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d8394))();
    if (*piVar3 == 2) goto LAB_0025e80c;
    if (*piVar3 == 0x14) goto LAB_0025e80c;
    puVar22 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);
    uVar6 = *puVar7;
    uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*piVar3);
    (**(code **)(pcVar26 + 0x1d4814))(puVar22,uVar6,uVar2);
    piVar3 = (int *)*puVar21;
    goto LAB_0025e810;
  }
  puStack_d8 = puVar7 + 3;
  puVar24 = &uStack_f0;
  pcStack_d0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);
  if (iVar20 == 0) goto LAB_0025e7f8;
  do {
    iVar20 = iVar20 + 0x13;
    puStack_f8 = puVar24;
    iVar16 = (**(code **)(pcVar26 + 0x1d820c))(iVar20);
    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_f8,iVar20,iVar20 + iVar16,0);
    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_f8,uStack_f4,0xc70f6907);
    if (puVar7[2] == 0) {
      trap(7);
    }
    puVar22 = (uint *)((uint)unaff_s5 % puVar7[2]);
    piVar3 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar7 + 1,puVar22,&puStack_f8,unaff_s5);
    if (piVar3 == (int *)0x0) goto LAB_0025e8e0;
    pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);
    if (*piVar3 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (puStack_f8 == puVar24) goto LAB_0025e720;
      (**(code **)(pcVar26 + 0x1d3d1c))();
      iVar20 = (**(code **)(pcVar26 + 0x1d822c))(iVar15);
      if (iVar20 != 0) break;
LAB_0025e7f8:
      iVar20 = (**(code **)(pcVar26 + 0x1d81c8))(iVar15);
      if (iVar20 == 0) {
LAB_0025e80c:
        piVar3 = (int *)*puVar21;
      }
      else {
        uVar6 = *puVar7;
        puVar11 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();
        uVar2 = (**(code **)(pcVar26 + 0x1d8374))(*puVar11);
        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar6,uVar2);
        piVar3 = (int *)*puVar21;
      }
LAB_0025e810:
      (**(code **)(*piVar3 + 8))(piVar3);
      piVar3 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);
      uVar6 = puVar21[2];
      iVar20 = puVar21[1];
      if (uVar6 == 0) {
        trap(7);
      }
      piVar3[2] = (int)puVar7;
      *piVar3 = 0;
      piVar3[1] = uVar23;
      puVar7 = (uint *)((uVar23 % uVar6) * 4);
      piVar19 = *(int **)(iVar20 + (int)puVar7);
      if (piVar19 == (int *)0x0) {
LAB_0025eb6c:
        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_f8,puVar21 + 5,uVar6,puVar21[4],1);
        uVar6 = uStack_f4;
        if (puStack_f8._0_1_ == '\0') {
          puVar11 = (undefined4 *)puVar21[1];
        }
        else {
          if (uStack_f4 == 1) {
            puVar11 = puVar21 + 7;
            puVar21[7] = 0;
          }
          else {
            puVar11 = (undefined4 *)MASKED(uStack_f4);
          }
          piVar19 = (int *)puVar21[3];
          puVar21[3] = 0;
          if (piVar19 != (int *)0x0) {
            uVar12 = 0;
            do {
              if (uVar6 == 0) {
                trap(7);
              }
              uVar17 = (uint)piVar19[1] % uVar6;
              puVar14 = puVar11 + uVar17;
              piVar4 = (int *)*piVar19;
              if ((int *)*puVar14 == (int *)0x0) {
                *piVar19 = puVar21[3];
                puVar21[3] = piVar19;
                *puVar14 = puVar21 + 3;
                if (*piVar19 != 0) {
                  puVar11[uVar12] = piVar19;
                }
              }
              else {
                *piVar19 = *(int *)*puVar14;
                *(int **)*puVar14 = piVar19;
                uVar17 = uVar12;
              }
              piVar19 = piVar4;
              uVar12 = uVar17;
            } while (piVar4 != (int *)0x0);
          }
          if ((undefined4 *)puVar21[1] != puVar21 + 7) {
            (**(code **)(pcVar26 + 0x1d3d1c))();
          }
          if (uVar6 == 0) {
            trap(7);
          }
          puVar21[2] = uVar6;
          puVar21[1] = puVar11;
          puVar7 = (uint *)(uVar23 % uVar6 << 2);
        }
        if (*(int **)((int)puVar11 + (int)puVar7) == (int *)0x0) {
          *piVar3 = puVar21[3];
          puVar21[3] = piVar3;
          if (*piVar3 == 0) {
            iVar15 = puVar21[1];
          }
          else {
            iVar15 = puVar21[1];
            if (puVar21[2] == 0) {
              trap(7);
            }
            *(int **)(iVar15 + (*(uint *)(*piVar3 + 4) % (uint)puVar21[2]) * 4) = piVar3;
          }
          *(undefined4 **)(iVar15 + (int)puVar7) = puVar21 + 3;
        }
        else {
          *piVar3 = **(int **)((int)puVar11 + (int)puVar7);
          **(undefined4 **)(puVar21[1] + (int)puVar7) = piVar3;
        }
        iVar15 = *(int *)*puVar21;
        puVar21[4] = puVar21[4] + 1;
        piVar3 = (int *)(**(code **)(iVar15 + 0xc))((int *)*puVar21);
        return piVar3;
      }
      uVar12 = ((int *)*piVar19)[1];
      piVar4 = (int *)*piVar19;
      while (piVar13 = piVar4, uVar23 != uVar12) {
        piVar4 = (int *)*piVar13;
        if (piVar4 == (int *)0x0) goto LAB_0025eb6c;
        uVar12 = piVar4[1];
        if (uVar6 == 0) {
          trap(7);
        }
        piVar19 = piVar13;
        if (uVar23 % uVar6 != uVar12 % uVar6) goto LAB_0025eb6c;
      }
      if (*piVar19 == 0) goto LAB_0025eb6c;
      (**(code **)(pcVar26 + 0x1d3d1c))(piVar3);
      (**(code **)(pcVar26 + 0x1d3e54))
                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar28 = *(code **)(pcVar26 + 0x1d3dcc);
LAB_0025e8e4:
      puVar8 = (uint *)(*pcVar28)(0x20);
      uVar6 = uStack_f4;
      *puVar8 = 0;
      puVar8[1] = (uint)(puVar8 + 3);
      if (puStack_f8 == puVar24) {
        puVar8[3] = uStack_f0;
        puVar8[4] = uStack_ec;
        puVar8[5] = uStack_e8;
        puVar8[6] = uStack_e4;
      }
      else {
        puVar8[1] = (uint)puStack_f8;
        puVar8[3] = uStack_f0;
      }
      uStack_cc = puVar7[6];
      uVar17 = puVar7[4];
      uVar12 = puVar7[2];
      pcVar28 = *(code **)(pcVar26 + 0x1d45c0);
      uStack_f4 = 0;
      puVar8[2] = uVar6;
      uStack_f0 = uStack_f0 & 0xffffff;
      puStack_f8 = puVar24;
      (*pcVar28)(acStack_e0,puVar7 + 5,uVar12,uVar17,1);
      uVar6 = uStack_dc;
      if (acStack_e0[0] == '\0') {
        puVar9 = (uint *)puVar7[1];
        puVar8[7] = (uint)unaff_s5;
        puVar22 = puVar9 + (int)puVar22;
        puVar10 = (uint *)*puVar22;
        if (puVar10 != (uint *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        uVar6 = puVar7[3];
        puVar7[3] = (uint)puVar8;
        *puVar8 = uVar6;
        if (uVar6 != 0) {
          if (puVar7[2] == 0) {
            trap(7);
          }
          puVar9[*(uint *)(uVar6 + 0x1c) % puVar7[2]] = (uint)puVar8;
        }
        *puVar22 = (uint)puStack_d8;
      }
      else {
        if (uStack_dc == 1) {
          puVar7[7] = 0;
          puVar9 = puStack_d4;
        }
        else {
          puVar9 = (uint *)(*pcStack_d0)(uStack_dc);
        }
        puVar22 = (uint *)puVar7[3];
        puVar7[3] = 0;
        if (puVar22 != (uint *)0x0) {
          uVar12 = 0;
          do {
            while( true ) {
              if (uVar6 == 0) {
                trap(7);
              }
              uVar17 = puVar22[7] % uVar6;
              puVar10 = puVar9 + uVar17;
              puVar18 = (uint *)*puVar22;
              if ((uint *)*puVar10 == (uint *)0x0) break;
              *puVar22 = *(uint *)*puVar10;
              *(uint **)*puVar10 = puVar22;
              uVar17 = uVar12;
LAB_0025e9a0:
              puVar22 = puVar18;
              uVar12 = uVar17;
              if (puVar18 == (uint *)0x0) goto LAB_0025ea00;
            }
            *puVar22 = puVar7[3];
            puVar7[3] = (uint)puVar22;
            *puVar10 = (uint)puStack_d8;
            if (*puVar22 == 0) goto LAB_0025e9a0;
            puVar9[uVar12] = (uint)puVar22;
            puVar22 = puVar18;
            uVar12 = uVar17;
          } while (puVar18 != (uint *)0x0);
        }
LAB_0025ea00:
        if (puStack_d4 != (uint *)puVar7[1]) {
          (**(code **)(pcVar26 + 0x1d3d1c))();
        }
        if (uVar6 == 0) {
          trap(7);
        }
        puVar7[2] = uVar6;
        puVar7[1] = (uint)puVar9;
        puVar8[7] = (uint)unaff_s5;
        puVar22 = puVar9 + (uint)unaff_s5 % uVar6;
        puVar10 = (uint *)*puVar22;
        if (puVar10 == (uint *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *puVar8 = *puVar10;
        *(uint **)*puVar22 = puVar8;
      }
      puVar7[4] = puVar7[4] + 1;
    }
  } while( true );
}

