
/* DWARF original prototype: void initialize(Dirsearch * this, Workqueue * workqueue, Dir_list *
   directories) */

void __thiscall
gold::Dirsearch::initialize(Dirsearch *this,Workqueue *workqueue,Dir_list *directories)

{
  bool bVar1;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *p_Var2;
  Task *t;
  uint uVar3;
  uint *puVar4;
  uint *puVar5;
  uint *puVar6;
  uint *puVar7;
  __bucket_type *pp_Var8;
  undefined4 *puVar9;
  uint uVar10;
  int *piVar11;
  _Hash_node_base *p_Var12;
  pointer pSVar13;
  int *piVar14;
  int *piVar15;
  __bucket_type *pp_Var16;
  int iVar17;
  int *piVar18;
  int iVar19;
  _Hash_node_base *p_Var20;
  int iVar21;
  uint *puVar22;
  pointer pSVar23;
  int unaff_s1;
  _func_int_varargs **pp_Var24;
  Dir_list *unaff_s2;
  undefined4 *puVar25;
  Task_token *unaff_s3;
  uint *puVar26;
  Workqueue *unaff_s4;
  uint uVar27;
  Dirsearch *unaff_s5;
  _func_int_varargs **pp_Var28;
  uint *puVar29;
  undefined *puVar30;
  code *pcVar31;
  code *pcVar32;
  undefined4 uVar33;
  uint uVar34;
  uint *puStack_d8;
  _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
  *p_Stack_d4;
  uint uStack_d0;
  uint uStack_cc;
  uint uStack_c8;
  uint uStack_c4;
  char acStack_c0 [4];
  uint uStack_bc;
  uint *puStack_b8;
  uint *puStack_b4;
  code *pcStack_b0;
  uint uStack_ac;
  int iStack_a8;
  undefined1 *puStack_a4;
  undefined1 **ppuStack_a0;
  uint *puStack_9c;
  Workqueue *pWStack_98;
  Dirsearch *pDStack_94;
  undefined *puStack_90;
  undefined1 *puStack_68;
  int iStack_64;
  undefined1 auStack_60 [20];
  int *piStack_4c;
  int iStack_48;
  Dir_list *pDStack_44;
  Task_token *pTStack_40;
  code *pcStack_3c;
  
  puVar29 = (uint *)PTR__environ_00433318;
  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {
    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);
                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */
    (*(code *)PTR_Lock_00434030)(unaff_s1);
    puVar30 = PTR_s_alize_xindex_004323b4;
    pSVar23 = (directories->
              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).
              _M_impl._M_start;
    unaff_s3 = &this->token_;
    pSVar13 = (directories->
              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).
              _M_impl._M_finish;
    bVar1 = (this->token_).is_blocker_;
    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;
    *(undefined4 *)(unaff_s1 + 0x10) = 0;
    uVar33 = *(undefined4 *)(puVar30 + -0x636c);
    *(undefined4 *)(unaff_s1 + 8) = 1;
    *(undefined4 *)(unaff_s1 + 0x1c) = 0;
    *(undefined4 *)(unaff_s1 + 0xc) = 0;
    *(undefined4 *)(unaff_s1 + 0x18) = 0;
    *(int *)((int)puVar29 + -0x2830) = unaff_s1;
    this->directories_ = directories;
    *(undefined4 *)(unaff_s1 + 0x14) = uVar33;
    unaff_s2 = directories;
    unaff_s4 = workqueue;
    unaff_s5 = this;
    if (bVar1 != false) {
      (this->token_).writer_ = (Task *)0x0;
      (this->token_).blockers_ =
           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;
      if (pSVar23 != pSVar13) {
        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);
        do {
          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;
          pSVar23 = pSVar23 + 1;
          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;
          t[1]._vptr_Task = pp_Var24;
          t[1].list_next_ = (Task *)unaff_s3;
          Workqueue::queue(workqueue,t);
        } while ((directories->
                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>
                 )._M_impl._M_finish != pSVar23);
      }
      return;
    }
  }
  else {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);
  }
  piVar14 = (int *)(PTR_LAB_0043220c + 0x48a0);
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar14,0x97,PTR_s__0043226c + 0x1398);
                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */
  iVar17 = 0x20;
  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);
  pcVar32 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;
  piVar18 = piVar14;
  puVar30 = PTR__Unwind_Resume_00432258;
  (*(code *)PTR__Unwind_Resume_00432258)();
  puStack_68 = auStack_60;
  piStack_4c = piVar14;
  iStack_48 = unaff_s1;
  pDStack_44 = unaff_s2;
  pTStack_40 = unaff_s3;
  pcStack_3c = pcVar32;
  (**(code **)(puVar30 + 0x1d40ac))
            (&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317
             ,0);
  puVar26 = *(uint **)(iVar17 + 0x24);
  uVar3 = (**(code **)(puVar30 + 0x1d83a0))(puVar26);
  if (uVar3 <= 0x7fffffffU - iStack_64) {
    piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);
    piVar11 = piVar14 + 2;
    *piVar18 = (int)(piVar18 + 2);
    if ((int *)*piVar14 == piVar11) {
      iVar21 = piVar14[3];
      iVar19 = piVar14[4];
      iVar17 = piVar14[5];
      piVar18[2] = *piVar11;
      piVar18[3] = iVar21;
      piVar18[4] = iVar19;
      piVar18[5] = iVar17;
    }
    else {
      *piVar18 = *piVar14;
      piVar18[2] = piVar14[2];
    }
    piVar18[1] = piVar14[1];
    *piVar14 = (int)piVar11;
    piVar14[1] = 0;
    *(undefined1 *)(piVar14 + 2) = 0;
    if (puStack_68 != auStack_60) {
      (**(code **)(puVar30 + 0x1d3eb0))();
    }
    return;
  }
  iVar17 = *(int *)(puVar30 + 0x1d3fd8) + -0x6240;
  (**(code **)(puVar30 + 0x1d40a4))();
  if (puStack_68 != auStack_60) {
    (**(code **)(puVar30 + 0x1d3eb0))(puStack_68);
  }
  pcVar32 = *(code **)(puVar30 + 0x1d3e7c);
  iVar19 = iVar17;
  (*pcVar32)();
  puVar25 = *(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830);
  uVar27 = *(uint *)(iVar19 + 0x24);
  puStack_90 = (undefined *)puVar29;
  iStack_a8 = iVar17;
  puStack_a4 = auStack_60;
  ppuStack_a0 = &puStack_68;
  puStack_9c = puVar26;
  pWStack_98 = unaff_s4;
  pDStack_94 = unaff_s5;
  (**(code **)(*(int *)*puVar25 + 8))((int *)*puVar25);
  uVar3 = puVar25[2];
  if (uVar3 == 0) {
    trap(7);
  }
  piVar18 = *(int **)(puVar25[1] + (uVar27 % uVar3) * 4);
  if (piVar18 != (int *)0x0) {
    uVar10 = ((int *)*piVar18)[1];
    piVar14 = (int *)*piVar18;
    do {
      piVar11 = piVar14;
      if (uVar27 == uVar10) {
        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);
        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {
          (*pcVar31)();
          return;
        }
        goto LAB_0025e698;
      }
      piVar14 = (int *)*piVar11;
      if (piVar14 == (int *)0x0) break;
      uVar10 = piVar14[1];
      if (uVar3 == 0) {
        trap(7);
      }
      piVar18 = piVar11;
    } while (uVar27 % uVar3 == uVar10 % uVar3);
  }
  pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);
LAB_0025e698:
  (*pcVar31)();
  puVar4 = (uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20);
  puStack_b4 = puVar4 + 7;
  *puVar4 = uVar27;
  iVar17 = *(int *)(pcVar32 + 0x1d3e44);
  pcVar31 = *(code **)(pcVar32 + 0x1d8260);
  puVar4[1] = (uint)puStack_b4;
  uVar3 = *(uint *)(iVar17 + -0x636c);
  puVar4[4] = 0;
  puVar4[7] = 0;
  puVar4[2] = 1;
  puVar4[3] = 0;
  puVar4[6] = 0;
  puVar4[5] = uVar3;
  iVar17 = (*pcVar31)(uVar27);
  if (iVar17 == 0) {
    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();
    if (*piVar18 == 2) goto LAB_0025e80c;
    if (*piVar18 == 0x14) goto LAB_0025e80c;
    puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);
    uVar3 = *puVar4;
    uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);
    (**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);
    piVar18 = (int *)*puVar25;
    goto LAB_0025e810;
  }
  puStack_b8 = puVar4 + 3;
  puVar29 = &uStack_d0;
  pcStack_b0 = (code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);
  if (iVar19 == 0) goto LAB_0025e7f8;
  do {
    iVar19 = iVar19 + 0x13;
    puStack_d8 = puVar29;
    iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);
    (**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);
    unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);
    if (puVar4[2] == 0) {
      trap(7);
    }
    puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);
    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);
    if (piVar18 == (int *)0x0) goto LAB_0025e8e0;
    pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);
    if (*piVar18 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (puStack_d8 == puVar29) goto LAB_0025e720;
      (**(code **)(pcVar32 + 0x1d3d1c))();
      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);
      if (iVar19 != 0) break;
LAB_0025e7f8:
      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);
      if (iVar19 == 0) {
LAB_0025e80c:
        piVar18 = (int *)*puVar25;
      }
      else {
        uVar3 = *puVar4;
        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();
        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);
        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);
        piVar18 = (int *)*puVar25;
      }
LAB_0025e810:
      (**(code **)(*piVar18 + 8))(piVar18);
      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);
      uVar3 = puVar25[2];
      iVar19 = puVar25[1];
      if (uVar3 == 0) {
        trap(7);
      }
      piVar18[2] = (int)puVar4;
      *piVar18 = 0;
      piVar18[1] = uVar27;
      puVar4 = (uint *)((uVar27 % uVar3) * 4);
      piVar14 = *(int **)(iVar19 + (int)puVar4);
      if (piVar14 == (int *)0x0) {
LAB_0025eb6c:
        puVar9 = puVar25 + 5;
        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);
        p_Var2 = p_Stack_d4;
        if (puStack_d8._0_1_ == '\0') {
          pp_Var8 = (__bucket_type *)puVar25[1];
        }
        else {
          if (p_Stack_d4 ==
              (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
               *)0x1) {
            pp_Var8 = (__bucket_type *)(puVar25 + 7);
            puVar25[7] = 0;
          }
          else {
            pp_Var8 = 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(p_Stack_d4,(size_t)puVar9);
          }
          p_Var12 = (_Hash_node_base *)puVar25[3];
          puVar25[3] = 0;
          if (p_Var12 != (_Hash_node_base *)0x0) {
            uVar3 = 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);
              }
              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;
              pp_Var16 = pp_Var8 + uVar10;
              p_Var20 = p_Var12->_M_nxt;
              if (*pp_Var16 == (__bucket_type)0x0) {
                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];
                puVar25[3] = p_Var12;
                *pp_Var16 = (__bucket_type)(puVar25 + 3);
                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {
                  pp_Var8[uVar3] = p_Var12;
                }
              }
              else {
                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;
                (*pp_Var16)->_M_nxt = p_Var12;
                uVar10 = uVar3;
              }
              p_Var12 = p_Var20;
              uVar3 = uVar10;
            } while (p_Var20 != (_Hash_node_base *)0x0);
          }
          if ((undefined4 *)puVar25[1] != puVar25 + 7) {
            (**(code **)(pcVar32 + 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);
          }
          puVar25[2] = p_Var2;
          puVar25[1] = pp_Var8;
          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);
        }
        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {
          *piVar18 = puVar25[3];
          puVar25[3] = piVar18;
          if (*piVar18 == 0) {
            iVar17 = puVar25[1];
          }
          else {
            iVar17 = puVar25[1];
            if (puVar25[2] == 0) {
              trap(7);
            }
            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;
          }
          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;
        }
        else {
          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);
          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;
        }
        iVar17 = *(int *)*puVar25;
        puVar25[4] = puVar25[4] + 1;
        (**(code **)(iVar17 + 0xc))((int *)*puVar25);
        return;
      }
      uVar10 = ((int *)*piVar14)[1];
      piVar11 = (int *)*piVar14;
      while (piVar15 = piVar11, uVar27 != uVar10) {
        piVar11 = (int *)*piVar15;
        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;
        uVar10 = piVar11[1];
        if (uVar3 == 0) {
          trap(7);
        }
        piVar14 = piVar15;
        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;
      }
      if (*piVar14 == 0) goto LAB_0025eb6c;
      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);
      (**(code **)(pcVar32 + 0x1d3e54))
                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);
LAB_0025e8e4:
      puVar5 = (uint *)(*pcVar31)(0x20);
      p_Var2 = p_Stack_d4;
      *puVar5 = 0;
      puVar5[1] = (uint)(puVar5 + 3);
      if (puStack_d8 == puVar29) {
        puVar5[3] = uStack_d0;
        puVar5[4] = uStack_cc;
        puVar5[5] = uStack_c8;
        puVar5[6] = uStack_c4;
      }
      else {
        puVar5[1] = (uint)puStack_d8;
        puVar5[3] = uStack_d0;
      }
      uStack_ac = puVar4[6];
      uVar10 = puVar4[4];
      uVar3 = puVar4[2];
      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);
      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>
                    *)0x0;
      puVar5[2] = (uint)p_Var2;
      uStack_d0 = uStack_d0 & 0xffffff;
      puStack_d8 = puVar29;
      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);
      uVar3 = uStack_bc;
      if (acStack_c0[0] == '\0') {
        puVar6 = (uint *)puVar4[1];
        puVar5[7] = (uint)unaff_s5;
        puVar26 = puVar6 + (int)puVar26;
        puVar7 = (uint *)*puVar26;
        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        uVar3 = puVar4[3];
        puVar4[3] = (uint)puVar5;
        *puVar5 = uVar3;
        if (uVar3 != 0) {
          if (puVar4[2] == 0) {
            trap(7);
          }
          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;
        }
        *puVar26 = (uint)puStack_b8;
      }
      else {
        if (uStack_bc == 1) {
          puVar4[7] = 0;
          puVar6 = puStack_b4;
        }
        else {
          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);
        }
        puVar26 = (uint *)puVar4[3];
        puVar4[3] = 0;
        if (puVar26 != (uint *)0x0) {
          uVar10 = 0;
          do {
            while( true ) {
              if (uVar3 == 0) {
                trap(7);
              }
              uVar34 = puVar26[7] % uVar3;
              puVar7 = puVar6 + uVar34;
              puVar22 = (uint *)*puVar26;
              if ((uint *)*puVar7 == (uint *)0x0) break;
              *puVar26 = *(uint *)*puVar7;
              *(uint **)*puVar7 = puVar26;
              uVar34 = uVar10;
LAB_0025e9a0:
              puVar26 = puVar22;
              uVar10 = uVar34;
              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;
            }
            *puVar26 = puVar4[3];
            puVar4[3] = (uint)puVar26;
            *puVar7 = (uint)puStack_b8;
            if (*puVar26 == 0) goto LAB_0025e9a0;
            puVar6[uVar10] = (uint)puVar26;
            puVar26 = puVar22;
            uVar10 = uVar34;
          } while (puVar22 != (uint *)0x0);
        }
LAB_0025ea00:
        if (puStack_b4 != (uint *)puVar4[1]) {
          (**(code **)(pcVar32 + 0x1d3d1c))();
        }
        if (uVar3 == 0) {
          trap(7);
        }
        puVar4[2] = uVar3;
        puVar4[1] = (uint)puVar6;
        puVar5[7] = (uint)unaff_s5;
        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;
        puVar7 = (uint *)*puVar26;
        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *puVar5 = *puVar7;
        *(uint **)*puVar26 = puVar5;
      }
      puVar4[4] = puVar4[4] + 1;
    }
  } while( true );
}



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

{
  char cVar1;
  int *piVar2;
  Task *pTVar3;
  uint uVar4;
  uint *puVar5;
  uint *puVar6;
  uint *puVar7;
  uint *puVar8;
  undefined4 *puVar9;
  uint uVar10;
  int *piVar11;
  int *piVar12;
  undefined4 *puVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  uint *puVar17;
  int *piVar18;
  int unaff_s1;
  int iVar19;
  int *unaff_s2;
  undefined4 *puVar20;
  int *unaff_s3;
  uint *puVar21;
  Workqueue *unaff_s4;
  uint uVar22;
  int *unaff_s5;
  undefined *puVar23;
  uint *puVar24;
  code *pcVar25;
  code *pcVar26;
  undefined4 uVar27;
  uint *puStack_d8;
  uint uStack_d4;
  uint uStack_d0;
  uint uStack_cc;
  uint uStack_c8;
  uint uStack_c4;
  char acStack_c0 [4];
  uint uStack_bc;
  uint *puStack_b8;
  uint *puStack_b4;
  code *pcStack_b0;
  uint uStack_ac;
  int iStack_a8;
  undefined1 *puStack_a4;
  undefined1 **ppuStack_a0;
  uint *puStack_9c;
  Workqueue *pWStack_98;
  int *piStack_94;
  undefined *puStack_90;
  undefined1 *puStack_68;
  int iStack_64;
  undefined1 auStack_60 [20];
  int *piStack_4c;
  int iStack_48;
  int *piStack_44;
  int *piStack_40;
  code *pcStack_3c;
  
  puVar24 = (uint *)PTR__environ_00433318;
  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {
    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);
                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */
    (*(code *)PTR_Lock_00434030)(unaff_s1);
    puVar23 = PTR_s_alize_xindex_004323b4;
    piVar18 = (int *)*param_3;
    unaff_s3 = param_1 + 1;
    piVar11 = (int *)param_3[1];
    cVar1 = *(char *)(param_1 + 1);
    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;
    *(undefined4 *)(unaff_s1 + 0x10) = 0;
    uVar27 = *(undefined4 *)(puVar23 + -0x636c);
    *(undefined4 *)(unaff_s1 + 8) = 1;
    *(undefined4 *)(unaff_s1 + 0x1c) = 0;
    *(undefined4 *)(unaff_s1 + 0xc) = 0;
    *(undefined4 *)(unaff_s1 + 0x18) = 0;
    *(int *)((int)puVar24 + -0x2830) = unaff_s1;
    *param_1 = (int)param_3;
    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;
    unaff_s2 = param_3;
    unaff_s4 = param_2;
    unaff_s5 = param_1;
    if (cVar1 != '\0') {
      param_1[3] = 0;
      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);
      param_1[2] = (int)piVar2;
      if (piVar18 != piVar11) {
        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;
        do {
          iVar19 = *piVar18;
          piVar18 = piVar18 + 7;
          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);
          *(undefined4 *)(pTVar3 + 4) = 0;
          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;
          *(undefined4 *)(pTVar3 + 0xc) = 0;
          pTVar3[0x10] = (Task)0x0;
          pTVar3[0x20] = (Task)0x0;
          *(undefined **)pTVar3 = puVar23;
          *(int *)(pTVar3 + 0x24) = iVar19;
          *(int **)(pTVar3 + 0x28) = unaff_s3;
          gold::Workqueue::queue(param_2,pTVar3);
          piVar2 = (int *)param_3[1];
        } while (piVar2 != piVar18);
      }
      return piVar2;
    }
  }
  else {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);
  }
  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);
                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */
  iVar19 = 0x20;
  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);
  pcVar26 = FUN_0025e3dc;
  piVar11 = piVar18;
  puVar23 = PTR_FUN_00432258;
  (*(code *)PTR_FUN_00432258)();
  puStack_68 = auStack_60;
  piStack_4c = piVar18;
  iStack_48 = unaff_s1;
  piStack_44 = unaff_s2;
  piStack_40 = unaff_s3;
  pcStack_3c = pcVar26;
  (**(code **)(puVar23 + 0x1d40ac))
            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317
             ,0);
  puVar21 = *(uint **)(iVar19 + 0x24);
  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);
  if (uVar4 <= 0x7fffffffU - iStack_64) {
    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);
    piVar2 = piVar18 + 2;
    *piVar11 = (int)(piVar11 + 2);
    if ((int *)*piVar18 == piVar2) {
      iVar15 = piVar18[3];
      iVar14 = piVar18[4];
      iVar19 = piVar18[5];
      piVar11[2] = *piVar2;
      piVar11[3] = iVar15;
      piVar11[4] = iVar14;
      piVar11[5] = iVar19;
    }
    else {
      *piVar11 = *piVar18;
      piVar11[2] = piVar18[2];
    }
    piVar11[1] = piVar18[1];
    *piVar18 = (int)piVar2;
    piVar18[1] = 0;
    *(undefined1 *)(piVar18 + 2) = 0;
    if (puStack_68 != auStack_60) {
      (**(code **)(puVar23 + 0x1d3eb0))();
    }
    return piVar11;
  }
  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;
  (**(code **)(puVar23 + 0x1d40a4))();
  if (puStack_68 != auStack_60) {
    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);
  }
  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);
  iVar14 = iVar19;
  (*pcVar26)();
  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);
  uVar22 = *(uint *)(iVar14 + 0x24);
  puStack_90 = (undefined *)puVar24;
  iStack_a8 = iVar19;
  puStack_a4 = auStack_60;
  ppuStack_a0 = &puStack_68;
  puStack_9c = puVar21;
  pWStack_98 = unaff_s4;
  piStack_94 = unaff_s5;
  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);
  uVar4 = puVar20[2];
  if (uVar4 == 0) {
    trap(7);
  }
  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);
  if (piVar11 != (int *)0x0) {
    uVar10 = ((int *)*piVar11)[1];
    piVar18 = (int *)*piVar11;
    do {
      piVar2 = piVar18;
      if (uVar22 == uVar10) {
        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);
        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {
          piVar11 = (int *)(*pcVar25)();
          return piVar11;
        }
        goto LAB_0025e698;
      }
      piVar18 = (int *)*piVar2;
      if (piVar18 == (int *)0x0) break;
      uVar10 = piVar18[1];
      if (uVar4 == 0) {
        trap(7);
      }
      piVar11 = piVar2;
    } while (uVar22 % uVar4 == uVar10 % uVar4);
  }
  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);
LAB_0025e698:
  (*pcVar25)();
  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);
  puStack_b4 = puVar5 + 7;
  *puVar5 = uVar22;
  iVar19 = *(int *)(pcVar26 + 0x1d3e44);
  pcVar25 = *(code **)(pcVar26 + 0x1d8260);
  puVar5[1] = (uint)puStack_b4;
  uVar4 = *(uint *)(iVar19 + -0x636c);
  puVar5[4] = 0;
  puVar5[7] = 0;
  puVar5[2] = 1;
  puVar5[3] = 0;
  puVar5[6] = 0;
  puVar5[5] = uVar4;
  iVar19 = (*pcVar25)(uVar22);
  if (iVar19 == 0) {
    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();
    if (*piVar11 == 2) goto LAB_0025e80c;
    if (*piVar11 == 0x14) goto LAB_0025e80c;
    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);
    uVar4 = *puVar5;
    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);
    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);
    piVar11 = (int *)*puVar20;
    goto LAB_0025e810;
  }
  puStack_b8 = puVar5 + 3;
  puVar24 = &uStack_d0;
  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);
  if (iVar14 == 0) goto LAB_0025e7f8;
  do {
    iVar14 = iVar14 + 0x13;
    puStack_d8 = puVar24;
    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);
    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);
    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);
    if (puVar5[2] == 0) {
      trap(7);
    }
    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);
    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);
    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;
    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);
    if (*piVar11 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (puStack_d8 == puVar24) goto LAB_0025e720;
      (**(code **)(pcVar26 + 0x1d3d1c))();
      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);
      if (iVar14 != 0) break;
LAB_0025e7f8:
      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);
      if (iVar14 == 0) {
LAB_0025e80c:
        piVar11 = (int *)*puVar20;
      }
      else {
        uVar4 = *puVar5;
        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();
        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);
        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);
        piVar11 = (int *)*puVar20;
      }
LAB_0025e810:
      (**(code **)(*piVar11 + 8))(piVar11);
      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);
      uVar4 = puVar20[2];
      iVar14 = puVar20[1];
      if (uVar4 == 0) {
        trap(7);
      }
      piVar11[2] = (int)puVar5;
      *piVar11 = 0;
      piVar11[1] = uVar22;
      puVar5 = (uint *)((uVar22 % uVar4) * 4);
      piVar18 = *(int **)(iVar14 + (int)puVar5);
      if (piVar18 == (int *)0x0) {
LAB_0025eb6c:
        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);
        uVar4 = uStack_d4;
        if (puStack_d8._0_1_ == '\0') {
          puVar9 = (undefined4 *)puVar20[1];
        }
        else {
          if (uStack_d4 == 1) {
            puVar9 = puVar20 + 7;
            puVar20[7] = 0;
          }
          else {
            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);
          }
          piVar18 = (int *)puVar20[3];
          puVar20[3] = 0;
          if (piVar18 != (int *)0x0) {
            uVar10 = 0;
            do {
              if (uVar4 == 0) {
                trap(7);
              }
              uVar16 = (uint)piVar18[1] % uVar4;
              puVar13 = puVar9 + uVar16;
              piVar2 = (int *)*piVar18;
              if ((int *)*puVar13 == (int *)0x0) {
                *piVar18 = puVar20[3];
                puVar20[3] = piVar18;
                *puVar13 = puVar20 + 3;
                if (*piVar18 != 0) {
                  puVar9[uVar10] = piVar18;
                }
              }
              else {
                *piVar18 = *(int *)*puVar13;
                *(int **)*puVar13 = piVar18;
                uVar16 = uVar10;
              }
              piVar18 = piVar2;
              uVar10 = uVar16;
            } while (piVar2 != (int *)0x0);
          }
          if ((undefined4 *)puVar20[1] != puVar20 + 7) {
            (**(code **)(pcVar26 + 0x1d3d1c))();
          }
          if (uVar4 == 0) {
            trap(7);
          }
          puVar20[2] = uVar4;
          puVar20[1] = puVar9;
          puVar5 = (uint *)(uVar22 % uVar4 << 2);
        }
        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {
          *piVar11 = puVar20[3];
          puVar20[3] = piVar11;
          if (*piVar11 == 0) {
            iVar19 = puVar20[1];
          }
          else {
            iVar19 = puVar20[1];
            if (puVar20[2] == 0) {
              trap(7);
            }
            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;
          }
          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;
        }
        else {
          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);
          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;
        }
        iVar19 = *(int *)*puVar20;
        puVar20[4] = puVar20[4] + 1;
        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);
        return piVar11;
      }
      uVar10 = ((int *)*piVar18)[1];
      piVar2 = (int *)*piVar18;
      while (piVar12 = piVar2, uVar22 != uVar10) {
        piVar2 = (int *)*piVar12;
        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;
        uVar10 = piVar2[1];
        if (uVar4 == 0) {
          trap(7);
        }
        piVar18 = piVar12;
        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;
      }
      if (*piVar18 == 0) goto LAB_0025eb6c;
      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);
      (**(code **)(pcVar26 + 0x1d3e54))
                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);
LAB_0025e8e4:
      puVar6 = (uint *)(*pcVar25)(0x20);
      uVar4 = uStack_d4;
      *puVar6 = 0;
      puVar6[1] = (uint)(puVar6 + 3);
      if (puStack_d8 == puVar24) {
        puVar6[3] = uStack_d0;
        puVar6[4] = uStack_cc;
        puVar6[5] = uStack_c8;
        puVar6[6] = uStack_c4;
      }
      else {
        puVar6[1] = (uint)puStack_d8;
        puVar6[3] = uStack_d0;
      }
      uStack_ac = puVar5[6];
      uVar16 = puVar5[4];
      uVar10 = puVar5[2];
      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);
      uStack_d4 = 0;
      puVar6[2] = uVar4;
      uStack_d0 = uStack_d0 & 0xffffff;
      puStack_d8 = puVar24;
      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);
      uVar4 = uStack_bc;
      if (acStack_c0[0] == '\0') {
        puVar7 = (uint *)puVar5[1];
        puVar6[7] = (uint)unaff_s5;
        puVar21 = puVar7 + (int)puVar21;
        puVar8 = (uint *)*puVar21;
        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        uVar4 = puVar5[3];
        puVar5[3] = (uint)puVar6;
        *puVar6 = uVar4;
        if (uVar4 != 0) {
          if (puVar5[2] == 0) {
            trap(7);
          }
          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;
        }
        *puVar21 = (uint)puStack_b8;
      }
      else {
        if (uStack_bc == 1) {
          puVar5[7] = 0;
          puVar7 = puStack_b4;
        }
        else {
          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);
        }
        puVar21 = (uint *)puVar5[3];
        puVar5[3] = 0;
        if (puVar21 != (uint *)0x0) {
          uVar10 = 0;
          do {
            while( true ) {
              if (uVar4 == 0) {
                trap(7);
              }
              uVar16 = puVar21[7] % uVar4;
              puVar8 = puVar7 + uVar16;
              puVar17 = (uint *)*puVar21;
              if ((uint *)*puVar8 == (uint *)0x0) break;
              *puVar21 = *(uint *)*puVar8;
              *(uint **)*puVar8 = puVar21;
              uVar16 = uVar10;
LAB_0025e9a0:
              puVar21 = puVar17;
              uVar10 = uVar16;
              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;
            }
            *puVar21 = puVar5[3];
            puVar5[3] = (uint)puVar21;
            *puVar8 = (uint)puStack_b8;
            if (*puVar21 == 0) goto LAB_0025e9a0;
            puVar7[uVar10] = (uint)puVar21;
            puVar21 = puVar17;
            uVar10 = uVar16;
          } while (puVar17 != (uint *)0x0);
        }
LAB_0025ea00:
        if (puStack_b4 != (uint *)puVar5[1]) {
          (**(code **)(pcVar26 + 0x1d3d1c))();
        }
        if (uVar4 == 0) {
          trap(7);
        }
        puVar5[2] = uVar4;
        puVar5[1] = (uint)puVar7;
        puVar6[7] = (uint)unaff_s5;
        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;
        puVar8 = (uint *)*puVar21;
        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *puVar6 = *puVar8;
        *(uint **)*puVar21 = puVar6;
      }
      puVar5[4] = puVar5[4] + 1;
    }
  } while( true );
}


lui gp,0x1e
addiu gp,gp,-0x4044
addu gp,gp,t9
addiu sp,sp,-0x38
sw s6,0x30(sp)
lw s6,-0x6eb8(gp)
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
lw v0,-0x2830(s6)
bne v0,zero,0x0025e37c
_lw t9,-0x7e94(gp)
or s5,a0,zero
li a0,0x20
or s4,a1,zero
jalr t9
_or s2,a2,zero
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x61a0(gp)
jalr t9
_or s1,v0,zero
lw gp,0x10(sp)
addiu v1,s1,0x1c
lw s0,0x0(s2)
addiu s3,s5,0x4
lw a0,0x4(s2)
lbu a1,0x4(s5)
lw a2,-0x7e1c(gp)
sw v1,0x4(s1)
li v1,0x1
subu v0,a0,s0
sw zero,0x10(s1)
lwc1 f0,-0x636c(a2)
sw v1,0x8(s1)
lui v1,0xb6db
sra v0,v0,0x2
sw zero,0x1c(s1)
addiu v1,v1,0x6db7
sw zero,0xc(s1)
sw zero,0x18(s1)
mul v0,v0,v1
sw s1,-0x2830(s6)
sw s2,0x0(s5)
beq a1,zero,0x0025e398
_swc1 f0,0x14(s1)
lw v1,0x8(s5)
sw zero,0xc(s5)
addu v0,v1,v0
beq s0,a0,0x0025e354
_sw v0,0x8(s5)
lw s5,-0x7fd8(gp)
addiu s5,s5,-0x6d48
lw t9,-0x7e94(gp)
li a0,0x2c
lw s1,0x0(s0)
jalr t9
_addiu s0,s0,0x1c
or a0,s4,zero
lw gp,0x10(sp)
addiu v1,v0,0x10
sw zero,0x4(v0)
or a1,v0,zero
sw v1,0x8(v0)
sw zero,0xc(v0)
sb zero,0x10(v0)
sb zero,0x20(v0)
sw s5,0x0(v0)
sw s1,0x24(v0)
lw t9,-0x73a0(gp)
bal 0x00249d10
_sw s3,0x28(v0)
lw v0,0x4(s2)
bne v0,s0,0x0025e2fc
_lw gp,0x10(sp)
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
lw a2,-0x7f64(gp)
li a1,0xe7
lw a0,-0x7f64(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x13a8
jalr t9
_addiu a0,a0,0x12f0
lw a2,-0x7f64(gp)
li a1,0x97
lw a0,-0x7fc4(gp)
lw t9,-0x7e0c(gp)
addiu a2,a2,0x1398
jalr t9
_addiu a0,a0,0x48a0
lw gp,0x10(sp)
li a1,0x20
or s0,a0,zero
lw t9,-0x7e10(gp)
jalr t9
_or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7f78(gp)
jalr t9
_or a0,s0,zero
(translation_unit "int * FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */\n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}\n\n" (function_definition "int * FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */\n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)" * (function_declarator "FUN_0025e214(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  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */\n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "Task *pTVar3;" type_identifier (pointer_declarator "*pTVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "Workqueue *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "uint *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "uint uStack_d4;" type_identifier identifier ;) (declaration "uint uStack_d0;" type_identifier identifier ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "uint uStack_c4;" type_identifier identifier ;) (declaration "char acStack_c0 [4];" primitive_type (array_declarator "acStack_c0 [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "uint *puStack_b8;" type_identifier (pointer_declarator "*puStack_b8" * identifier) ;) (declaration "uint *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "undefined1 *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "undefined1 **ppuStack_a0;" type_identifier (pointer_declarator "**ppuStack_a0" * (pointer_declarator "*ppuStack_a0" * identifier)) ;) (declaration "uint *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "Workqueue *pWStack_98;" type_identifier (pointer_declarator "*pWStack_98" * identifier) ;) (declaration "int *piStack_94;" primitive_type (pointer_declarator "*piStack_94" * identifier) ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "undefined1 *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "undefined1 auStack_60 [20];" type_identifier (array_declarator "auStack_60 [20]" identifier [ number_literal ]) ;) (declaration "int *piStack_4c;" primitive_type (pointer_declarator "*piStack_4c" * identifier) ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int *piStack_44;" primitive_type (pointer_declarator "*piStack_44" * identifier) ;) (declaration "int *piStack_40;" primitive_type (pointer_declarator "*piStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (expression_statement "puVar24 = (uint *)PTR__environ_00433318;" (assignment_expression "puVar24 = (uint *)PTR__environ_00433318" identifier = (cast_expression "(uint *)PTR__environ_00433318" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x2830) == 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + -0x2830) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x2830)" * (cast_expression "(int *)(PTR__environ_00433318 + -0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + -0x2830)" ( (binary_expression "PTR__environ_00433318 + -0x2830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }" { (expression_statement "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);" (assignment_expression "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)(0x20)" (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 "(0x20)" ( number_literal )))) ;) comment (expression_statement "(*(code *)PTR_Lock_00434030)(unaff_s1);" (call_expression "(*(code *)PTR_Lock_00434030)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_Lock_00434030)" ( (pointer_expression "*(code *)PTR_Lock_00434030" * (cast_expression "(code *)PTR_Lock_00434030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "puVar23 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar23 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (expression_statement "piVar18 = (int *)*param_3;" (assignment_expression "piVar18 = (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 "piVar11 = (int *)param_3[1];" (assignment_expression "piVar11 = (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 "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(int *)(unaff_s1 + 4)" * (cast_expression "(int *)(unaff_s1 + 4)" ( (type_descriptor "int *" primitive_type (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 "uVar27 = *(undefined4 *)(puVar23 + -0x636c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar23 + -0x636c)" identifier = (pointer_expression "*(undefined4 *)(puVar23 + -0x636c)" * (cast_expression "(undefined4 *)(puVar23 + -0x636c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x636c)" ( (binary_expression "puVar23 + -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 "*(int *)((int)puVar24 + -0x2830) = unaff_s1;" (assignment_expression "*(int *)((int)puVar24 + -0x2830) = unaff_s1" (pointer_expression "*(int *)((int)puVar24 + -0x2830)" * (cast_expression "(int *)((int)puVar24 + -0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + -0x2830)" ( (binary_expression "(int)puVar24 + -0x2830" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) 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) = uVar27;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar27" (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) ;) (if_statement "if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\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 "piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);" (assignment_expression "piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" identifier = (cast_expression "(int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" ( (binary_expression "param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "((int)piVar11 - (int)piVar18 >> 2) * -0x49249249" (parenthesized_expression "((int)piVar11 - (int)piVar18 >> 2)" ( (binary_expression "(int)piVar11 - (int)piVar18 >> 2" (binary_expression "(int)piVar11 - (int)piVar18" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "param_1[2] = (int)piVar2;" (assignment_expression "param_1[2] = (int)piVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }" if (parenthesized_expression "(piVar18 != piVar11)" ( (binary_expression "piVar18 != piVar11" identifier != identifier) )) (compound_statement "{\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }" { (expression_statement "puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;" (assignment_expression "puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48" identifier = (binary_expression "PTR_PTR__wfilebuf_004321f8 + -0x6d48" identifier + number_literal)) ;) (do_statement "do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);" do (compound_statement "{\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        }" { (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar18 = piVar18 + 7;" (assignment_expression "piVar18 = piVar18 + 7" identifier = (binary_expression "piVar18 + 7" identifier + number_literal)) ;) (expression_statement "pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);" (assignment_expression "pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" identifier = (cast_expression "(Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(0x2c)" (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 "(0x2c)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(pTVar3 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar3 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar3 + 4)" * (cast_expression "(undefined4 *)(pTVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar3 + 4)" ( (binary_expression "pTVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(Task **)(pTVar3 + 8) = pTVar3 + 0x10;" (assignment_expression "*(Task **)(pTVar3 + 8) = pTVar3 + 0x10" (pointer_expression "*(Task **)(pTVar3 + 8)" * (cast_expression "(Task **)(pTVar3 + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar3 + 8)" ( (binary_expression "pTVar3 + 8" identifier + number_literal) )))) = (binary_expression "pTVar3 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pTVar3 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(pTVar3 + 0xc) = 0" (pointer_expression "*(undefined4 *)(pTVar3 + 0xc)" * (cast_expression "(undefined4 *)(pTVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar3 + 0xc)" ( (binary_expression "pTVar3 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pTVar3[0x10] = (Task)0x0;" (assignment_expression "pTVar3[0x10] = (Task)0x0" (subscript_expression "pTVar3[0x10]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "pTVar3[0x20] = (Task)0x0;" (assignment_expression "pTVar3[0x20] = (Task)0x0" (subscript_expression "pTVar3[0x20]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined **)pTVar3 = puVar23;" (assignment_expression "*(undefined **)pTVar3 = puVar23" (pointer_expression "*(undefined **)pTVar3" * (cast_expression "(undefined **)pTVar3" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(pTVar3 + 0x24) = iVar19;" (assignment_expression "*(int *)(pTVar3 + 0x24) = iVar19" (pointer_expression "*(int *)(pTVar3 + 0x24)" * (cast_expression "(int *)(pTVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar3 + 0x24)" ( (binary_expression "pTVar3 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(pTVar3 + 0x28) = unaff_s3;" (assignment_expression "*(int **)(pTVar3 + 0x28) = unaff_s3" (pointer_expression "*(int **)(pTVar3 + 0x28)" * (cast_expression "(int **)(pTVar3 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar3 + 0x28)" ( (binary_expression "pTVar3 + 0x28" identifier + number_literal) )))) = identifier) ;) (labeled_statement "gold::Workqueue::queue(param_2,pTVar3);" statement_identifier : (ERROR ":" :) (labeled_statement "Workqueue::queue(param_2,pTVar3);" statement_identifier : (ERROR ":" :) (expression_statement "queue(param_2,pTVar3);" (call_expression "queue(param_2,pTVar3)" identifier (argument_list "(param_2,pTVar3)" ( identifier , identifier ))) ;))) (expression_statement "piVar2 = (int *)param_3[1];" (assignment_expression "piVar2 = (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 "(piVar2 != piVar18)" ( (binary_expression "piVar2 != piVar18" identifier != identifier) )) ;) })) (return_statement "return piVar2;" return identifier ;) })) }) (else_clause "else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" else (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8)" ( (binary_expression "PTR_DAT_0043226c + 0x12f0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x13a8" identifier + number_literal) ))) ;) }))) (expression_statement "piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);" (assignment_expression "piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0)" identifier = (cast_expression "(int *)(PTR_LAB_0043220c + 0x48a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0043220c + 0x48a0)" ( (binary_expression "PTR_LAB_0043220c + 0x48a0" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar18,0x97,PTR_DAT_0043226c + 0x1398)" ( identifier , number_literal , (binary_expression "PTR_DAT_0043226c + 0x1398" identifier + number_literal) ))) ;) comment (expression_statement "iVar19 = 0x20;" (assignment_expression "iVar19 = 0x20" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_operator_delete_004323c0)(unaff_s1);" (call_expression "(*(code *)PTR_operator_delete_004323c0)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004323c0)" ( (pointer_expression "*(code *)PTR_operator_delete_004323c0" * (cast_expression "(code *)PTR_operator_delete_004323c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "pcVar26 = FUN_0025e3dc;" (assignment_expression "pcVar26 = FUN_0025e3dc" identifier = identifier) ;) (expression_statement "piVar11 = piVar18;" (assignment_expression "piVar11 = piVar18" identifier = identifier) ;) (expression_statement "puVar23 = PTR_FUN_00432258;" (assignment_expression "puVar23 = PTR_FUN_00432258" identifier = identifier) ;) (expression_statement "(*(code *)PTR_FUN_00432258)();" (call_expression "(*(code *)PTR_FUN_00432258)()" (parenthesized_expression "(*(code *)PTR_FUN_00432258)" ( (pointer_expression "*(code *)PTR_FUN_00432258" * (cast_expression "(code *)PTR_FUN_00432258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_68 = auStack_60;" (assignment_expression "puStack_68 = auStack_60" identifier = identifier) ;) (expression_statement "piStack_4c = piVar18;" (assignment_expression "piStack_4c = piVar18" identifier = identifier) ;) (expression_statement "iStack_48 = unaff_s1;" (assignment_expression "iStack_48 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_44 = unaff_s2;" (assignment_expression "piStack_44 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_40 = unaff_s3;" (assignment_expression "piStack_40 = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar26;" (assignment_expression "pcStack_3c = pcVar26" identifier = identifier) ;) (expression_statement "(**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d40ac))" ( (pointer_expression "**(code **)(puVar23 + 0x1d40ac)" * (pointer_expression "*(code **)(puVar23 + 0x1d40ac)" * (cast_expression "(code **)(puVar23 + 0x1d40ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d40ac)" ( (binary_expression "puVar23 + 0x1d40ac" identifier + number_literal) ))))) )) (argument_list "(&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0)" ( (pointer_expression "&puStack_68" & identifier) , (binary_expression "*(int *)(puVar23 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(puVar23 + 0x1d3e90)" * (cast_expression "(int *)(puVar23 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d3e90)" ( (binary_expression "puVar23 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar23 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(puVar23 + 0x1d3e90)" * (cast_expression "(int *)(puVar23 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d3e90)" ( (binary_expression "puVar23 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar21 = *(uint **)(iVar19 + 0x24);" (assignment_expression "puVar21 = *(uint **)(iVar19 + 0x24)" identifier = (pointer_expression "*(uint **)(iVar19 + 0x24)" * (cast_expression "(uint **)(iVar19 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0x24)" ( (binary_expression "iVar19 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);" (assignment_expression "uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21)" identifier = (call_expression "(**(code **)(puVar23 + 0x1d83a0))(puVar21)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d83a0))" ( (pointer_expression "**(code **)(puVar23 + 0x1d83a0)" * (pointer_expression "*(code **)(puVar23 + 0x1d83a0)" * (cast_expression "(code **)(puVar23 + 0x1d83a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d83a0)" ( (binary_expression "puVar23 + 0x1d83a0" identifier + number_literal) ))))) )) (argument_list "(puVar21)" ( identifier )))) ;) (if_statement "if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }" if (parenthesized_expression "(uVar4 <= 0x7fffffffU - iStack_64)" ( (binary_expression "uVar4 <= 0x7fffffffU - iStack_64" identifier <= (binary_expression "0x7fffffffU - iStack_64" number_literal - identifier)) )) (compound_statement "{\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }" { (expression_statement "piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);" (assignment_expression "piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" identifier = (cast_expression "(int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d4874))" ( (pointer_expression "**(code **)(puVar23 + 0x1d4874)" * (pointer_expression "*(code **)(puVar23 + 0x1d4874)" * (cast_expression "(code **)(puVar23 + 0x1d4874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d4874)" ( (binary_expression "puVar23 + 0x1d4874" identifier + number_literal) ))))) )) (argument_list "(&puStack_68,puVar21,uVar4)" ( (pointer_expression "&puStack_68" & identifier) , identifier , identifier ))))) ;) (expression_statement "piVar2 = piVar18 + 2;" (assignment_expression "piVar2 = piVar18 + 2" identifier = (binary_expression "piVar18 + 2" identifier + number_literal)) ;) (expression_statement "*piVar11 = (int)(piVar11 + 2);" (assignment_expression "*piVar11 = (int)(piVar11 + 2)" (pointer_expression "*piVar11" * identifier) = (cast_expression "(int)(piVar11 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) )))) ;) (if_statement "if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" if (parenthesized_expression "((int *)*piVar18 == piVar2)" ( (binary_expression "(int *)*piVar18 == piVar2" (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier)) == identifier) )) (compound_statement "{\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }" { (expression_statement "iVar15 = piVar18[3];" (assignment_expression "iVar15 = piVar18[3]" identifier = (subscript_expression "piVar18[3]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = piVar18[4];" (assignment_expression "iVar14 = piVar18[4]" identifier = (subscript_expression "piVar18[4]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = piVar18[5];" (assignment_expression "iVar19 = piVar18[5]" identifier = (subscript_expression "piVar18[5]" identifier [ number_literal ])) ;) (expression_statement "piVar11[2] = *piVar2;" (assignment_expression "piVar11[2] = *piVar2" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar11[3] = iVar15;" (assignment_expression "piVar11[3] = iVar15" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[4] = iVar14;" (assignment_expression "piVar11[4] = iVar14" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[5] = iVar19;" (assignment_expression "piVar11[5] = iVar19" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" else (compound_statement "{\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" { (expression_statement "*piVar11 = *piVar18;" (assignment_expression "*piVar11 = *piVar18" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar11[2] = piVar18[2];" (assignment_expression "piVar11[2] = piVar18[2]" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar11[1] = piVar18[1];" (assignment_expression "piVar11[1] = piVar18[1]" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (subscript_expression "piVar18[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar18 = (int)piVar2;" (assignment_expression "*piVar18 = (int)piVar2" (pointer_expression "*piVar18" * identifier) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar18[1] = 0;" (assignment_expression "piVar18[1] = 0" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar18 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar18 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar18 + 2)" * (cast_expression "(undefined1 *)(piVar18 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar18 + 2)" ( (binary_expression "piVar18 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }" if (parenthesized_expression "(puStack_68 != auStack_60)" ( (binary_expression "puStack_68 != auStack_60" identifier != identifier) )) (compound_statement "{\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }" { (expression_statement "(**(code **)(puVar23 + 0x1d3eb0))();" (call_expression "(**(code **)(puVar23 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1d3eb0))" ( (pointer_expression "**(code **)(puVar23 + 0x1d3eb0)" * (pointer_expression "*(code **)(puVar23 + 0x1d3eb0)" * (cast_expression "(code **)(puVar23 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d3eb0)" ( (binary_expression "puVar23 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return piVar11;" return identifier ;) })) (expression_statement "iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240" identifier = (binary_expression "*(int *)(puVar23 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(puVar23 + 0x1d3fd8)" * (cast_expression "(int *)(puVar23 + 0x1d3fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d3fd8)" ( (binary_expression "puVar23 + 0x1d3fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar23 + 0x1d40a4))();" (call_expression "(**(code **)(puVar23 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1d40a4))" ( (pointer_expression "**(code **)(puVar23 + 0x1d40a4)" * (pointer_expression "*(code **)(puVar23 + 0x1d40a4)" * (cast_expression "(code **)(puVar23 + 0x1d40a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d40a4)" ( (binary_expression "puVar23 + 0x1d40a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }" if (parenthesized_expression "(puStack_68 != auStack_60)" ( (binary_expression "puStack_68 != auStack_60" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }" { (expression_statement "(**(code **)(puVar23 + 0x1d3eb0))(puStack_68);" (call_expression "(**(code **)(puVar23 + 0x1d3eb0))(puStack_68)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d3eb0))" ( (pointer_expression "**(code **)(puVar23 + 0x1d3eb0)" * (pointer_expression "*(code **)(puVar23 + 0x1d3eb0)" * (cast_expression "(code **)(puVar23 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d3eb0)" ( (binary_expression "puVar23 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "(puStack_68)" ( identifier ))) ;) })) (expression_statement "pcVar26 = *(code **)(puVar23 + 0x1d3e7c);" (assignment_expression "pcVar26 = *(code **)(puVar23 + 0x1d3e7c)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1d3e7c)" * (cast_expression "(code **)(puVar23 + 0x1d3e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d3e7c)" ( (binary_expression "puVar23 + 0x1d3e7c" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = iVar19;" (assignment_expression "iVar14 = iVar19" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar20 = *(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 "uVar22 = *(uint *)(iVar14 + 0x24);" (assignment_expression "uVar22 = *(uint *)(iVar14 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x24)" * (cast_expression "(uint *)(iVar14 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puStack_90 = (undefined *)puVar24;" (assignment_expression "puStack_90 = (undefined *)puVar24" identifier = (cast_expression "(undefined *)puVar24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_a8 = iVar19;" (assignment_expression "iStack_a8 = iVar19" identifier = identifier) ;) (expression_statement "puStack_a4 = auStack_60;" (assignment_expression "puStack_a4 = auStack_60" identifier = identifier) ;) (expression_statement "ppuStack_a0 = &puStack_68;" (assignment_expression "ppuStack_a0 = &puStack_68" identifier = (pointer_expression "&puStack_68" & identifier)) ;) (expression_statement "puStack_9c = puVar21;" (assignment_expression "puStack_9c = puVar21" identifier = identifier) ;) (expression_statement "pWStack_98 = unaff_s4;" (assignment_expression "pWStack_98 = unaff_s4" identifier = identifier) ;) (expression_statement "piStack_94 = unaff_s5;" (assignment_expression "piStack_94 = unaff_s5" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);" (call_expression "(**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20)" (parenthesized_expression "(**(code **)(*(int *)*puVar20 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar20 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar20 + 8)" * (cast_expression "(code **)(*(int *)*puVar20 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar20 + 8)" ( (binary_expression "*(int *)*puVar20 + 8" (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar20)" ( (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier)) ))) ;) (expression_statement "uVar4 = puVar20[2];" (assignment_expression "uVar4 = puVar20[2]" identifier = (subscript_expression "puVar20[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);" (assignment_expression "piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" identifier = (pointer_expression "*(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" * (cast_expression "(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20[1] + (uVar22 % uVar4) * 4)" ( (binary_expression "puVar20[1] + (uVar22 % uVar4) * 4" (subscript_expression "puVar20[1]" identifier [ number_literal ]) + (binary_expression "(uVar22 % uVar4) * 4" (parenthesized_expression "(uVar22 % uVar4)" ( (binary_expression "uVar22 % uVar4" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }" { (expression_statement "uVar10 = ((int *)*piVar11)[1];" (assignment_expression "uVar10 = ((int *)*piVar11)[1]" identifier = (subscript_expression "((int *)*piVar11)[1]" (parenthesized_expression "((int *)*piVar11)" ( (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar18 = (int *)*piVar11;" (assignment_expression "piVar18 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (do_statement "do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);" do (compound_statement "{\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    }" { (expression_statement "piVar2 = piVar18;" (assignment_expression "piVar2 = piVar18" identifier = identifier) ;) (if_statement "if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }" if (parenthesized_expression "(uVar22 == uVar10)" ( (binary_expression "uVar22 == uVar10" identifier == identifier) )) (compound_statement "{\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }" { (expression_statement "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);" (assignment_expression "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar20 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar20 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar20 + 0xc)" ( (binary_expression "*(int *)*puVar20 + 0xc" (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }" if (parenthesized_expression "((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0))" ( (binary_expression "(*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)" (parenthesized_expression "(*piVar11 != 0)" ( (binary_expression "*piVar11 != 0" (pointer_expression "*piVar11" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar11 + 8) != 0)" ( (binary_expression "*(int *)(*piVar11 + 8) != 0" (pointer_expression "*(int *)(*piVar11 + 8)" * (cast_expression "(int *)(*piVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 8)" ( (binary_expression "*piVar11 + 8" (pointer_expression "*piVar11" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }" { (expression_statement "piVar11 = (int *)(*pcVar25)();" (assignment_expression "piVar11 = (int *)(*pcVar25)()" identifier = (cast_expression "(int *)(*pcVar25)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar11;" return identifier ;) })) (goto_statement "goto LAB_0025e698;" goto statement_identifier ;) })) (expression_statement "piVar18 = (int *)*piVar2;" (assignment_expression "piVar18 = (int *)*piVar2" identifier = (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) (if_statement "if (piVar18 == (int *)0x0) break;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = piVar18[1];" (assignment_expression "uVar10 = piVar18[1]" identifier = (subscript_expression "piVar18[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar11 = piVar2;" (assignment_expression "piVar11 = piVar2" identifier = identifier) ;) }) while (parenthesized_expression "(uVar22 % uVar4 == uVar10 % uVar4)" ( (binary_expression "uVar22 % uVar4 == uVar10 % uVar4" (binary_expression "uVar22 % uVar4" identifier % identifier) == (binary_expression "uVar10 % uVar4" identifier % identifier)) )) ;) })) (expression_statement "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);" (assignment_expression "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar20 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar20 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar20 + 0xc)" ( (binary_expression "*(int *)*puVar20 + 0xc" (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0025e698:\n  (*pcVar25)();" statement_identifier : (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);" (assignment_expression "puVar5 = (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_b4 = puVar5 + 7;" (assignment_expression "puStack_b4 = puVar5 + 7" identifier = (binary_expression "puVar5 + 7" identifier + number_literal)) ;) (expression_statement "*puVar5 = uVar22;" (assignment_expression "*puVar5 = uVar22" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "iVar19 = *(int *)(pcVar26 + 0x1d3e44);" (assignment_expression "iVar19 = *(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 "pcVar25 = *(code **)(pcVar26 + 0x1d8260);" (assignment_expression "pcVar25 = *(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 "puVar5[1] = (uint)puStack_b4;" (assignment_expression "puVar5[1] = (uint)puStack_b4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_b4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = *(uint *)(iVar19 + -0x636c);" (assignment_expression "uVar4 = *(uint *)(iVar19 + -0x636c)" identifier = (pointer_expression "*(uint *)(iVar19 + -0x636c)" * (cast_expression "(uint *)(iVar19 + -0x636c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x636c)" ( (binary_expression "iVar19 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 1;" (assignment_expression "puVar5[2] = 1" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = uVar4;" (assignment_expression "puVar5[5] = uVar4" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar19 = (*pcVar25)(uVar22);" (assignment_expression "iVar19 = (*pcVar25)(uVar22)" identifier = (call_expression "(*pcVar25)(uVar22)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(uVar22)" ( identifier )))) ;) (if_statement "if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }" { (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "piVar11 = (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 (*piVar11 == 2) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar11 == 2)" ( (binary_expression "*piVar11 == 2" (pointer_expression "*piVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (if_statement "if (*piVar11 == 0x14) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar11 == 0x14)" ( (binary_expression "*piVar11 == 0x14" (pointer_expression "*piVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (expression_statement "puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar21 = (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 "uVar4 = *puVar5;" (assignment_expression "uVar4 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);" (assignment_expression "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*piVar11)" (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 "(*piVar11)" ( (pointer_expression "*piVar11" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);" (call_expression "(**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27)" (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 "(puVar21,uVar4,uVar27)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" identifier = (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (goto_statement "goto LAB_0025e810;" goto statement_identifier ;) })) (expression_statement "puStack_b8 = puVar5 + 3;" (assignment_expression "puStack_b8 = puVar5 + 3" identifier = (binary_expression "puVar5 + 3" identifier + number_literal)) ;) (expression_statement "puVar24 = &uStack_d0;" (assignment_expression "puVar24 = &uStack_d0" identifier = (pointer_expression "&uStack_d0" & identifier)) ;) (expression_statement "pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_b0 = (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  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" statement_identifier : (expression_statement "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar19)" (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 "(iVar19)" ( identifier )))) ;)) (if_statement "if (iVar14 == 0) goto LAB_0025e7f8;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025e7f8;" goto statement_identifier ;)) (do_statement "do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  }" { (expression_statement "iVar14 = iVar14 + 0x13;" (assignment_expression "iVar14 = iVar14 + 0x13" identifier = (binary_expression "iVar14 + 0x13" identifier + number_literal)) ;) (expression_statement "puStack_d8 = puVar24;" (assignment_expression "puStack_d8 = puVar24" identifier = identifier) ;) (expression_statement "iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);" (assignment_expression "iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d820c))(iVar14)" (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 "(iVar14)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);" (call_expression "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,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_d8,iVar14,iVar14 + iVar15,0)" ( (pointer_expression "&puStack_d8" & identifier) , identifier , (binary_expression "iVar14 + iVar15" identifier + identifier) , number_literal ))) ;) (expression_statement "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);" (assignment_expression "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,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_d8,uStack_d4,0xc70f6907)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar5[2] == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(puVar5[2] == 0)" ( (binary_expression "puVar5[2] == 0" (subscript_expression "puVar5[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 "puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);" (assignment_expression "puVar21 = (uint *)((uint)unaff_s5 % puVar5[2])" identifier = (cast_expression "(uint *)((uint)unaff_s5 % puVar5[2])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s5 % puVar5[2])" ( (binary_expression "(uint)unaff_s5 % puVar5[2]" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % (subscript_expression "puVar5[2]" identifier [ number_literal ])) )))) ;) (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,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 "(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" ( (binary_expression "puVar5 + 1" identifier + number_literal) , identifier , (pointer_expression "&puStack_d8" & identifier) , identifier ))))) ;) (if_statement "if (piVar11 == (int *)0x0) goto LAB_0025e8e0;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (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 "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar25 = *(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 (*piVar11 == 0) goto LAB_0025e8e4;" if (parenthesized_expression "(*piVar11 == 0)" ( (binary_expression "*piVar11 == 0" (pointer_expression "*piVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e8e4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }" { (if_statement "if (puStack_d8 == puVar24) goto LAB_0025e720;" if (parenthesized_expression "(puStack_d8 == puVar24)" ( (binary_expression "puStack_d8 == 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 "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar19)" (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 "(iVar19)" ( identifier )))) ;) (if_statement "if (iVar14 != 0) break;" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);" statement_identifier : (expression_statement "iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d81c8))(iVar19)" (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 "(iVar19)" ( identifier )))) ;)) (if_statement "if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }" { (labeled_statement "LAB_0025e80c:\n        piVar11 = (int *)*puVar20;" statement_identifier : (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" identifier = (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;)) }) (else_clause "else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" else (compound_statement "{\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" { (expression_statement "uVar4 = *puVar5;" (assignment_expression "uVar4 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "puVar9 = (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 "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);" (assignment_expression "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*puVar9)" (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 "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);" (call_expression "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27)" (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,uVar4,uVar27)" ( (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 "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" identifier = (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) }))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);" statement_identifier : (expression_statement "(**(code **)(*piVar11 + 8))(piVar11);" (call_expression "(**(code **)(*piVar11 + 8))(piVar11)" (parenthesized_expression "(**(code **)(*piVar11 + 8))" ( (pointer_expression "**(code **)(*piVar11 + 8)" * (pointer_expression "*(code **)(*piVar11 + 8)" * (cast_expression "(code **)(*piVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 8)" ( (binary_expression "*piVar11 + 8" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) )) (argument_list "(piVar11)" ( identifier ))) ;)) (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);" (assignment_expression "piVar11 = (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 "uVar4 = puVar20[2];" (assignment_expression "uVar4 = puVar20[2]" identifier = (subscript_expression "puVar20[2]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = puVar20[1];" (assignment_expression "iVar14 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar11[2] = (int)puVar5;" (assignment_expression "piVar11[2] = (int)puVar5" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (expression_statement "piVar11[1] = uVar22;" (assignment_expression "piVar11[1] = uVar22" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = (uint *)((uVar22 % uVar4) * 4);" (assignment_expression "puVar5 = (uint *)((uVar22 % uVar4) * 4)" identifier = (cast_expression "(uint *)((uVar22 % uVar4) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar22 % uVar4) * 4)" ( (binary_expression "(uVar22 % uVar4) * 4" (parenthesized_expression "(uVar22 % uVar4)" ( (binary_expression "uVar22 % uVar4" identifier % identifier) )) * number_literal) )))) ;) (expression_statement "piVar18 = *(int **)(iVar14 + (int)puVar5);" (assignment_expression "piVar18 = *(int **)(iVar14 + (int)puVar5)" identifier = (pointer_expression "*(int **)(iVar14 + (int)puVar5)" * (cast_expression "(int **)(iVar14 + (int)puVar5)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + (int)puVar5)" ( (binary_expression "iVar14 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (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_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }" { (labeled_statement "LAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);" statement_identifier : (expression_statement "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);" (call_expression "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[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_d8,puVar20 + 5,uVar4,puVar20[4],1)" ( (pointer_expression "&puStack_d8" & identifier) , (binary_expression "puVar20 + 5" identifier + number_literal) , identifier , (subscript_expression "puVar20[4]" identifier [ number_literal ]) , number_literal ))) ;)) (expression_statement "uVar4 = uStack_d4;" (assignment_expression "uVar4 = uStack_d4" identifier = identifier) ;) (if_statement "if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" if (parenthesized_expression "(puStack_d8._0_1_ == '\0')" ( (binary_expression "puStack_d8._0_1_ == '\0'" (field_expression "puStack_d8._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          puVar9 = (undefined4 *)puVar20[1];\n        }" { (expression_statement "puVar9 = (undefined4 *)puVar20[1];" (assignment_expression "puVar9 = (undefined4 *)puVar20[1]" identifier = (cast_expression "(undefined4 *)puVar20[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" else (compound_statement "{\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" { (if_statement "if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" if (parenthesized_expression "(uStack_d4 == 1)" ( (binary_expression "uStack_d4 == 1" identifier == number_literal) )) (compound_statement "{\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }" { (expression_statement "puVar9 = puVar20 + 7;" (assignment_expression "puVar9 = puVar20 + 7" identifier = (binary_expression "puVar20 + 7" identifier + number_literal)) ;) (expression_statement "puVar20[7] = 0;" (assignment_expression "puVar20[7] = 0" (subscript_expression "puVar20[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" else (compound_statement "{\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" { (expression_statement "puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);" (assignment_expression "puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4)" identifier = (cast_expression "(undefined4 *)FUN_0025e1a8(uStack_d4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025e1a8(uStack_d4)" identifier (argument_list "(uStack_d4)" ( identifier ))))) ;) }))) (expression_statement "piVar18 = (int *)puVar20[3];" (assignment_expression "piVar18 = (int *)puVar20[3]" identifier = (cast_expression "(int *)puVar20[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar20[3] = 0;" (assignment_expression "puVar20[3] = 0" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }" if (parenthesized_expression "(piVar18 != (int *)0x0)" ( (binary_expression "piVar18 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);" do (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            }" { (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "uVar16 = (uint)piVar18[1] % uVar4;" (assignment_expression "uVar16 = (uint)piVar18[1] % uVar4" identifier = (binary_expression "(uint)piVar18[1] % uVar4" (cast_expression "(uint)piVar18[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar18[1]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "puVar13 = puVar9 + uVar16;" (assignment_expression "puVar13 = puVar9 + uVar16" identifier = (binary_expression "puVar9 + uVar16" identifier + identifier)) ;) (expression_statement "piVar2 = (int *)*piVar18;" (assignment_expression "piVar2 = (int *)*piVar18" identifier = (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (if_statement "if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" if (parenthesized_expression "((int *)*puVar13 == (int *)0x0)" ( (binary_expression "(int *)*puVar13 == (int *)0x0" (cast_expression "(int *)*puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }" { (expression_statement "*piVar18 = puVar20[3];" (assignment_expression "*piVar18 = puVar20[3]" (pointer_expression "*piVar18" * identifier) = (subscript_expression "puVar20[3]" identifier [ number_literal ])) ;) (expression_statement "puVar20[3] = piVar18;" (assignment_expression "puVar20[3] = piVar18" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = puVar20 + 3;" (assignment_expression "*puVar13 = puVar20 + 3" (pointer_expression "*puVar13" * identifier) = (binary_expression "puVar20 + 3" identifier + number_literal)) ;) (if_statement "if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }" if (parenthesized_expression "(*piVar18 != 0)" ( (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" * identifier) != number_literal) )) (compound_statement "{\n                  puVar9[uVar10] = piVar18;\n                }" { (expression_statement "puVar9[uVar10] = piVar18;" (assignment_expression "puVar9[uVar10] = piVar18" (subscript_expression "puVar9[uVar10]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" else (compound_statement "{\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" { (expression_statement "*piVar18 = *(int *)*puVar13;" (assignment_expression "*piVar18 = *(int *)*puVar13" (pointer_expression "*piVar18" * identifier) = (pointer_expression "*(int *)*puVar13" * (cast_expression "(int *)*puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)))) ;) (expression_statement "*(int **)*puVar13 = piVar18;" (assignment_expression "*(int **)*puVar13 = piVar18" (pointer_expression "*(int **)*puVar13" * (cast_expression "(int **)*puVar13" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar13" * identifier))) = identifier) ;) (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" identifier = identifier) ;) }))) (expression_statement "piVar18 = piVar2;" (assignment_expression "piVar18 = piVar2" identifier = identifier) ;) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) }) while (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" if (parenthesized_expression "((undefined4 *)puVar20[1] != puVar20 + 7)" ( (binary_expression "(undefined4 *)puVar20[1] != puVar20 + 7" (cast_expression "(undefined4 *)puVar20[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[1]" identifier [ number_literal ])) != (binary_expression "puVar20 + 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 (uVar4 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "puVar20[2] = uVar4;" (assignment_expression "puVar20[2] = uVar4" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[1] = puVar9;" (assignment_expression "puVar20[1] = puVar9" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = (uint *)(uVar22 % uVar4 << 2);" (assignment_expression "puVar5 = (uint *)(uVar22 % uVar4 << 2)" identifier = (cast_expression "(uint *)(uVar22 % uVar4 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 % uVar4 << 2)" ( (binary_expression "uVar22 % uVar4 << 2" (binary_expression "uVar22 % uVar4" identifier % identifier) << number_literal) )))) ;) }))) (if_statement "if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" if (parenthesized_expression "(*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0)" ( (binary_expression "*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0" (pointer_expression "*(int **)((int)puVar9 + (int)puVar5)" * (cast_expression "(int **)((int)puVar9 + (int)puVar5)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + (int)puVar5)" ( (binary_expression "(int)puVar9 + (int)puVar5" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }" { (expression_statement "*piVar11 = puVar20[3];" (assignment_expression "*piVar11 = puVar20[3]" (pointer_expression "*piVar11" * identifier) = (subscript_expression "puVar20[3]" identifier [ number_literal ])) ;) (expression_statement "puVar20[3] = piVar11;" (assignment_expression "puVar20[3] = piVar11" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" if (parenthesized_expression "(*piVar11 == 0)" ( (binary_expression "*piVar11 == 0" (pointer_expression "*piVar11" * identifier) == number_literal) )) (compound_statement "{\n            iVar19 = puVar20[1];\n          }" { (expression_statement "iVar19 = puVar20[1];" (assignment_expression "iVar19 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" else (compound_statement "{\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" { (expression_statement "iVar19 = puVar20[1];" (assignment_expression "iVar19 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar20[2] == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(puVar20[2] == 0)" ( (binary_expression "puVar20[2] == 0" (subscript_expression "puVar20[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 **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;" (assignment_expression "*(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11" (pointer_expression "*(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" * (cast_expression "(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" ( (binary_expression "iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4" identifier + (binary_expression "(*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar11 + 4) % (uint)puVar20[2])" ( (binary_expression "*(uint *)(*piVar11 + 4) % (uint)puVar20[2]" (pointer_expression "*(uint *)(*piVar11 + 4)" * (cast_expression "(uint *)(*piVar11 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) )))) % (cast_expression "(uint)puVar20[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar20[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) }))) (expression_statement "*(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;" (assignment_expression "*(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3" (pointer_expression "*(undefined4 **)(iVar19 + (int)puVar5)" * (cast_expression "(undefined4 **)(iVar19 + (int)puVar5)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + (int)puVar5)" ( (binary_expression "iVar19 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "puVar20 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" else (compound_statement "{\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" { (expression_statement "*piVar11 = **(int **)((int)puVar9 + (int)puVar5);" (assignment_expression "*piVar11 = **(int **)((int)puVar9 + (int)puVar5)" (pointer_expression "*piVar11" * identifier) = (pointer_expression "**(int **)((int)puVar9 + (int)puVar5)" * (pointer_expression "*(int **)((int)puVar9 + (int)puVar5)" * (cast_expression "(int **)((int)puVar9 + (int)puVar5)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + (int)puVar5)" ( (binary_expression "(int)puVar9 + (int)puVar5" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) (expression_statement "**(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;" (assignment_expression "**(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11" (pointer_expression "**(undefined4 **)(puVar20[1] + (int)puVar5)" * (pointer_expression "*(undefined4 **)(puVar20[1] + (int)puVar5)" * (cast_expression "(undefined4 **)(puVar20[1] + (int)puVar5)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20[1] + (int)puVar5)" ( (binary_expression "puVar20[1] + (int)puVar5" (subscript_expression "puVar20[1]" identifier [ number_literal ]) + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) = identifier) ;) }))) (expression_statement "iVar19 = *(int *)*puVar20;" (assignment_expression "iVar19 = *(int *)*puVar20" identifier = (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier)))) ;) (expression_statement "puVar20[4] = puVar20[4] + 1;" (assignment_expression "puVar20[4] = puVar20[4] + 1" (subscript_expression "puVar20[4]" identifier [ number_literal ]) = (binary_expression "puVar20[4] + 1" (subscript_expression "puVar20[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);" (assignment_expression "piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20)" identifier = (cast_expression "(int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + 0xc))((int *)*puVar20)" (parenthesized_expression "(**(code **)(iVar19 + 0xc))" ( (pointer_expression "**(code **)(iVar19 + 0xc)" * (pointer_expression "*(code **)(iVar19 + 0xc)" * (cast_expression "(code **)(iVar19 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) ))))) )) (argument_list "((int *)*puVar20)" ( (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier)) ))))) ;) (return_statement "return piVar11;" return identifier ;) })) (expression_statement "uVar10 = ((int *)*piVar18)[1];" (assignment_expression "uVar10 = ((int *)*piVar18)[1]" identifier = (subscript_expression "((int *)*piVar18)[1]" (parenthesized_expression "((int *)*piVar18)" ( (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar2 = (int *)*piVar18;" (assignment_expression "piVar2 = (int *)*piVar18" identifier = (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (while_statement "while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }" while (parenthesized_expression "(piVar12 = piVar2, uVar22 != uVar10)" ( (comma_expression "piVar12 = piVar2, uVar22 != uVar10" (assignment_expression "piVar12 = piVar2" identifier = identifier) , (binary_expression "uVar22 != uVar10" identifier != identifier)) )) (compound_statement "{\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }" { (expression_statement "piVar2 = (int *)*piVar12;" (assignment_expression "piVar2 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (if_statement "if (piVar2 == (int *)0x0) goto LAB_0025eb6c;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (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 "uVar10 = piVar2[1];" (assignment_expression "uVar10 = piVar2[1]" identifier = (subscript_expression "piVar2[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar18 = piVar12;" (assignment_expression "piVar18 = piVar12" identifier = identifier) ;) (if_statement "if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;" if (parenthesized_expression "(uVar22 % uVar4 != uVar10 % uVar4)" ( (binary_expression "uVar22 % uVar4 != uVar10 % uVar4" (binary_expression "uVar22 % uVar4" identifier % identifier) != (binary_expression "uVar10 % uVar4" identifier % identifier)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) })) (if_statement "if (*piVar18 == 0) goto LAB_0025eb6c;" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))(piVar11);" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))(piVar11)" (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 "(piVar11)" ( 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      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" statement_identifier : (expression_statement "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar25 = *(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      puVar6 = (uint *)(*pcVar25)(0x20);" statement_identifier : (expression_statement "puVar6 = (uint *)(*pcVar25)(0x20);" (assignment_expression "puVar6 = (uint *)(*pcVar25)(0x20)" identifier = (cast_expression "(uint *)(*pcVar25)(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar25)(0x20)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(0x20)" ( number_literal ))))) ;)) (expression_statement "uVar4 = uStack_d4;" (assignment_expression "uVar4 = uStack_d4" identifier = identifier) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = (uint)(puVar6 + 3);" (assignment_expression "puVar6[1] = (uint)(puVar6 + 3)" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (call_expression "(uint)(puVar6 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) )))) ;) (if_statement "if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" if (parenthesized_expression "(puStack_d8 == puVar24)" ( (binary_expression "puStack_d8 == puVar24" identifier == identifier) )) (compound_statement "{\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }" { (expression_statement "puVar6[3] = uStack_d0;" (assignment_expression "puVar6[3] = uStack_d0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = uStack_cc;" (assignment_expression "puVar6[4] = uStack_cc" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = uStack_c8;" (assignment_expression "puVar6[5] = uStack_c8" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = uStack_c4;" (assignment_expression "puVar6[6] = uStack_c4" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" else (compound_statement "{\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" { (expression_statement "puVar6[1] = (uint)puStack_d8;" (assignment_expression "puVar6[1] = (uint)puStack_d8" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar6[3] = uStack_d0;" (assignment_expression "puVar6[3] = uStack_d0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uStack_ac = puVar5[6];" (assignment_expression "uStack_ac = puVar5[6]" identifier = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = puVar5[4];" (assignment_expression "uVar16 = puVar5[4]" identifier = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar5[2];" (assignment_expression "uVar10 = puVar5[2]" identifier = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = *(code **)(pcVar26 + 0x1d45c0);" (assignment_expression "pcVar25 = *(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_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "puVar6[2] = uVar4;" (assignment_expression "puVar6[2] = uVar4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_d0 = uStack_d0 & 0xffffff;" (assignment_expression "uStack_d0 = uStack_d0 & 0xffffff" identifier = (binary_expression "uStack_d0 & 0xffffff" identifier & number_literal)) ;) (expression_statement "puStack_d8 = puVar24;" (assignment_expression "puStack_d8 = puVar24" identifier = identifier) ;) (expression_statement "(*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);" (call_expression "(*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(acStack_c0,puVar5 + 5,uVar10,uVar16,1)" ( identifier , (binary_expression "puVar5 + 5" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "uVar4 = uStack_bc;" (assignment_expression "uVar4 = uStack_bc" identifier = identifier) ;) (if_statement "if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" if (parenthesized_expression "(acStack_c0[0] == '\0')" ( (binary_expression "acStack_c0[0] == '\0'" (subscript_expression "acStack_c0[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }" { (expression_statement "puVar7 = (uint *)puVar5[1];" (assignment_expression "puVar7 = (uint *)puVar5[1]" identifier = (cast_expression "(uint *)puVar5[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar6[7] = (uint)unaff_s5;" (assignment_expression "puVar6[7] = (uint)unaff_s5" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar21 = puVar7 + (int)puVar21;" (assignment_expression "puVar21 = puVar7 + (int)puVar21" identifier = (binary_expression "puVar7 + (int)puVar21" identifier + (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar8 = (uint *)*puVar21;" (assignment_expression "puVar8 = (uint *)*puVar21" identifier = (cast_expression "(uint *)*puVar21" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (if_statement "if (puVar8 != (uint *)0x0) goto LAB_0025ea48;" if (parenthesized_expression "(puVar8 != (uint *)0x0)" ( (binary_expression "puVar8 != (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        uVar4 = puVar5[3];" statement_identifier : (expression_statement "uVar4 = puVar5[3];" (assignment_expression "uVar4 = puVar5[3]" identifier = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;)) (expression_statement "puVar5[3] = (uint)puVar6;" (assignment_expression "puVar5[3] = (uint)puVar6" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar6 = uVar4;" (assignment_expression "*puVar6 = uVar4" (pointer_expression "*puVar6" * identifier) = identifier) ;) (if_statement "if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }" { (if_statement "if (puVar5[2] == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(puVar5[2] == 0)" ( (binary_expression "puVar5[2] == 0" (subscript_expression "puVar5[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 "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;" (assignment_expression "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6" (subscript_expression "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]]" identifier [ (binary_expression "*(uint *)(uVar4 + 0x1c) % puVar5[2]" (pointer_expression "*(uint *)(uVar4 + 0x1c)" * (cast_expression "(uint *)(uVar4 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 0x1c)" ( (binary_expression "uVar4 + 0x1c" identifier + number_literal) )))) % (subscript_expression "puVar5[2]" identifier [ number_literal ])) ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*puVar21 = (uint)puStack_b8;" (assignment_expression "*puVar21 = (uint)puStack_b8" (pointer_expression "*puVar21" * identifier) = (cast_expression "(uint)puStack_b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" else (compound_statement "{\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" { (if_statement "if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" if (parenthesized_expression "(uStack_bc == 1)" ( (binary_expression "uStack_bc == 1" identifier == number_literal) )) (compound_statement "{\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }" { (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7 = puStack_b4;" (assignment_expression "puVar7 = puStack_b4" identifier = identifier) ;) }) (else_clause "else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" else (compound_statement "{\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" { (expression_statement "puVar7 = (uint *)(*pcStack_b0)(uStack_bc);" (assignment_expression "puVar7 = (uint *)(*pcStack_b0)(uStack_bc)" identifier = (cast_expression "(uint *)(*pcStack_b0)(uStack_bc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_b0)(uStack_bc)" (parenthesized_expression "(*pcStack_b0)" ( (pointer_expression "*pcStack_b0" * identifier) )) (argument_list "(uStack_bc)" ( identifier ))))) ;) }))) (expression_statement "puVar21 = (uint *)puVar5[3];" (assignment_expression "puVar21 = (uint *)puVar5[3]" identifier = (cast_expression "(uint *)puVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }" if (parenthesized_expression "(puVar21 != (uint *)0x0)" ( (binary_expression "puVar21 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);" do (compound_statement "{\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          }" { (while_statement "while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }" { (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "uVar16 = puVar21[7] % uVar4;" (assignment_expression "uVar16 = puVar21[7] % uVar4" identifier = (binary_expression "puVar21[7] % uVar4" (subscript_expression "puVar21[7]" identifier [ number_literal ]) % identifier)) ;) (expression_statement "puVar8 = puVar7 + uVar16;" (assignment_expression "puVar8 = puVar7 + uVar16" identifier = (binary_expression "puVar7 + uVar16" identifier + identifier)) ;) (expression_statement "puVar17 = (uint *)*puVar21;" (assignment_expression "puVar17 = (uint *)*puVar21" identifier = (cast_expression "(uint *)*puVar21" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (if_statement "if ((uint *)*puVar8 == (uint *)0x0) break;" if (parenthesized_expression "((uint *)*puVar8 == (uint *)0x0)" ( (binary_expression "(uint *)*puVar8 == (uint *)0x0" (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar21 = *(uint *)*puVar8;" (assignment_expression "*puVar21 = *(uint *)*puVar8" (pointer_expression "*puVar21" * identifier) = (pointer_expression "*(uint *)*puVar8" * (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)))) ;) (expression_statement "*(uint **)*puVar8 = puVar21;" (assignment_expression "*(uint **)*puVar8 = puVar21" (pointer_expression "*(uint **)*puVar8" * (cast_expression "(uint **)*puVar8" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar8" * identifier))) = identifier) ;) (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_0025e9a0:\n              puVar21 = puVar17;" statement_identifier : (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;)) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) (if_statement "if (puVar17 == (uint *)0x0) goto LAB_0025ea00;" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (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 "*puVar21 = puVar5[3];" (assignment_expression "*puVar21 = puVar5[3]" (pointer_expression "*puVar21" * identifier) = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "puVar5[3] = (uint)puVar21;" (assignment_expression "puVar5[3] = (uint)puVar21" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar8 = (uint)puStack_b8;" (assignment_expression "*puVar8 = (uint)puStack_b8" (pointer_expression "*puVar8" * identifier) = (cast_expression "(uint)puStack_b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*puVar21 == 0) goto LAB_0025e9a0;" if (parenthesized_expression "(*puVar21 == 0)" ( (binary_expression "*puVar21 == 0" (pointer_expression "*puVar21" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e9a0;" goto statement_identifier ;)) (expression_statement "puVar7[uVar10] = (uint)puVar21;" (assignment_expression "puVar7[uVar10] = (uint)puVar21" (subscript_expression "puVar7[uVar10]" identifier [ identifier ]) = (cast_expression "(uint)puVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) }) while (parenthesized_expression "(puVar17 != (uint *)0x0)" ( (binary_expression "puVar17 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" statement_identifier : (if_statement "if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" if (parenthesized_expression "(puStack_b4 != (uint *)puVar5[1])" ( (binary_expression "puStack_b4 != (uint *)puVar5[1]" identifier != (cast_expression "(uint *)puVar5[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[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 (uVar4 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "puVar5[2] = uVar4;" (assignment_expression "puVar5[2] = uVar4" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[1] = (uint)puVar7;" (assignment_expression "puVar5[1] = (uint)puVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar6[7] = (uint)unaff_s5;" (assignment_expression "puVar6[7] = (uint)unaff_s5" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar21 = puVar7 + (uint)unaff_s5 % uVar4;" (assignment_expression "puVar21 = puVar7 + (uint)unaff_s5 % uVar4" identifier = (binary_expression "puVar7 + (uint)unaff_s5 % uVar4" identifier + (binary_expression "(uint)unaff_s5 % uVar4" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "puVar8 = (uint *)*puVar21;" (assignment_expression "puVar8 = (uint *)*puVar21" identifier = (cast_expression "(uint *)*puVar21" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (if_statement "if (puVar8 == (uint *)0x0) goto LAB_0025ea84;" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (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        *puVar6 = *puVar8;" statement_identifier : (expression_statement "*puVar6 = *puVar8;" (assignment_expression "*puVar6 = *puVar8" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar8" * identifier)) ;)) (expression_statement "*(uint **)*puVar21 = puVar6;" (assignment_expression "*(uint **)*puVar21 = puVar6" (pointer_expression "*(uint **)*puVar21" * (cast_expression "(uint **)*puVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar21" * identifier))) = identifier) ;) }))) (expression_statement "puVar5[4] = puVar5[4] + 1;" (assignment_expression "puVar5[4] = puVar5[4] + 1" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (binary_expression "puVar5[4] + 1" (subscript_expression "puVar5[4]" identifier [ number_literal ]) + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* DWARF original prototype: void initialize(Dirsearch * this, Workqueue * workqueue, Dir_list *\n   directories) */\n\nvoid __thiscall\ngold::Dirsearch::initialize(Dirsearch *this,Workqueue *workqueue,Dir_list *directories)\n\n{\n  bool bVar1;\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  Task *t;\n  uint uVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  __bucket_type *pp_Var8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  _Hash_node_base *p_Var12;\n  pointer pSVar13;\n  int *piVar14;\n  int *piVar15;\n  __bucket_type *pp_Var16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  _Hash_node_base *p_Var20;\n  int iVar21;\n  uint *puVar22;\n  pointer pSVar23;\n  int unaff_s1;\n  _func_int_varargs **pp_Var24;\n  Dir_list *unaff_s2;\n  undefined4 *puVar25;\n  Task_token *unaff_s3;\n  uint *puVar26;\n  Workqueue *unaff_s4;\n  uint uVar27;\n  Dirsearch *unaff_s5;\n  _func_int_varargs **pp_Var28;\n  uint *puVar29;\n  undefined *puVar30;\n  code *pcVar31;\n  code *pcVar32;\n  undefined4 uVar33;\n  uint uVar34;\n  uint *puStack_d8;\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_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  Dirsearch *pDStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  Dir_list *pDStack_44;\n  Task_token *pTStack_40;\n  code *pcStack_3c;\n  \n  puVar29 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar30 = PTR_s_alize_xindex_004323b4;\n    pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start;\n    unaff_s3 = &this->token_;\n    pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish;\n    bVar1 = (this->token_).is_blocker_;\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar33 = *(undefined4 *)(puVar30 + -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    *(int *)((int)puVar29 + -0x2830) = unaff_s1;\n    this->directories_ = directories;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar33;\n    unaff_s2 = directories;\n    unaff_s4 = workqueue;\n    unaff_s5 = this;\n    if (bVar1 != false) {\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);\n  }\n  piVar14 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar14,0x97,PTR_s__0043226c + 0x1398);\n                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */\n  iVar17 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar32 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;\n  piVar18 = piVar14;\n  puVar30 = PTR__Unwind_Resume_00432258;\n  (*(code *)PTR__Unwind_Resume_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar14;\n  iStack_48 = unaff_s1;\n  pDStack_44 = unaff_s2;\n  pTStack_40 = unaff_s3;\n  pcStack_3c = pcVar32;\n  (**(code **)(puVar30 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar26 = *(uint **)(iVar17 + 0x24);\n  uVar3 = (**(code **)(puVar30 + 0x1d83a0))(puVar26);\n  if (uVar3 <= 0x7fffffffU - iStack_64) {\n    piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);\n    piVar11 = piVar14 + 2;\n    *piVar18 = (int)(piVar18 + 2);\n    if ((int *)*piVar14 == piVar11) {\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }\n    else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }\n    piVar18[1] = piVar14[1];\n    *piVar14 = (int)piVar11;\n    piVar14[1] = 0;\n    *(undefined1 *)(piVar14 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }\n    return;\n  }\n  iVar17 = *(int *)(puVar30 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar30 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar30 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar32 = *(code **)(puVar30 + 0x1d3e7c);\n  iVar19 = iVar17;\n  (*pcVar32)();\n  puVar25 = *(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830);\n  uVar27 = *(uint *)(iVar19 + 0x24);\n  puStack_90 = (undefined *)puVar29;\n  iStack_a8 = iVar17;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar26;\n  pWStack_98 = unaff_s4;\n  pDStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar25 + 8))((int *)*puVar25);\n  uVar3 = puVar25[2];\n  if (uVar3 == 0) {\n    trap(7);\n  }\n  piVar18 = *(int **)(puVar25[1] + (uVar27 % uVar3) * 4);\n  if (piVar18 != (int *)0x0) {\n    uVar10 = ((int *)*piVar18)[1];\n    piVar14 = (int *)*piVar18;\n    do {\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    } while (uVar27 % uVar3 == uVar10 % uVar3);\n  }\n  pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\nLAB_0025e698:\n  (*pcVar31)();\n  puVar4 = (uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar4 + 7;\n  *puVar4 = uVar27;\n  iVar17 = *(int *)(pcVar32 + 0x1d3e44);\n  pcVar31 = *(code **)(pcVar32 + 0x1d8260);\n  puVar4[1] = (uint)puStack_b4;\n  uVar3 = *(uint *)(iVar17 + -0x636c);\n  puVar4[4] = 0;\n  puVar4[7] = 0;\n  puVar4[2] = 1;\n  puVar4[3] = 0;\n  puVar4[6] = 0;\n  puVar4[5] = uVar3;\n  iVar17 = (*pcVar31)(uVar27);\n  if (iVar17 == 0) {\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();\n    if (*piVar18 == 2) goto LAB_0025e80c;\n    if (*piVar18 == 0x14) goto LAB_0025e80c;\n    puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);\n    uVar3 = *puVar4;\n    uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);\n    (**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);\n    piVar18 = (int *)*puVar25;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar4 + 3;\n  puVar29 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n  if (iVar19 == 0) goto LAB_0025e7f8;\n  do {\n    iVar19 = iVar19 + 0x13;\n    puStack_d8 = puVar29;\n    iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);\n    (**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);\n    unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);\n    if (puVar4[2] == 0) {\n      trap(7);\n    }\n    puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);\n    if (piVar18 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\n    if (*piVar18 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void __thiscall\ngold::Dirsearch::initialize(Dirsearch *this,Workqueue *workqueue,Dir_list *directories)\n\n{\n  bool bVar1;\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  Task *t;\n  uint uVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  __bucket_type *pp_Var8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  _Hash_node_base *p_Var12;\n  pointer pSVar13;\n  int *piVar14;\n  int *piVar15;\n  __bucket_type *pp_Var16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  _Hash_node_base *p_Var20;\n  int iVar21;\n  uint *puVar22;\n  pointer pSVar23;\n  int unaff_s1;\n  _func_int_varargs **pp_Var24;\n  Dir_list *unaff_s2;\n  undefined4 *puVar25;\n  Task_token *unaff_s3;\n  uint *puVar26;\n  Workqueue *unaff_s4;\n  uint uVar27;\n  Dirsearch *unaff_s5;\n  _func_int_varargs **pp_Var28;\n  uint *puVar29;\n  undefined *puVar30;\n  code *pcVar31;\n  code *pcVar32;\n  undefined4 uVar33;\n  uint uVar34;\n  uint *puStack_d8;\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_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  Dirsearch *pDStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  Dir_list *pDStack_44;\n  Task_token *pTStack_40;\n  code *pcStack_3c;\n  \n  puVar29 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar30 = PTR_s_alize_xindex_004323b4;\n    pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start;\n    unaff_s3 = &this->token_;\n    pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish;\n    bVar1 = (this->token_).is_blocker_;\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar33 = *(undefined4 *)(puVar30 + -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    *(int *)((int)puVar29 + -0x2830) = unaff_s1;\n    this->directories_ = directories;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar33;\n    unaff_s2 = directories;\n    unaff_s4 = workqueue;\n    unaff_s5 = this;\n    if (bVar1 != false) {\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);\n  }\n  piVar14 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar14,0x97,PTR_s__0043226c + 0x1398);\n                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */\n  iVar17 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar32 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;\n  piVar18 = piVar14;\n  puVar30 = PTR__Unwind_Resume_00432258;\n  (*(code *)PTR__Unwind_Resume_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar14;\n  iStack_48 = unaff_s1;\n  pDStack_44 = unaff_s2;\n  pTStack_40 = unaff_s3;\n  pcStack_3c = pcVar32;\n  (**(code **)(puVar30 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar26 = *(uint **)(iVar17 + 0x24);\n  uVar3 = (**(code **)(puVar30 + 0x1d83a0))(puVar26);\n  if (uVar3 <= 0x7fffffffU - iStack_64) {\n    piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);\n    piVar11 = piVar14 + 2;\n    *piVar18 = (int)(piVar18 + 2);\n    if ((int *)*piVar14 == piVar11) {\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }\n    else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }\n    piVar18[1] = piVar14[1];\n    *piVar14 = (int)piVar11;\n    piVar14[1] = 0;\n    *(undefined1 *)(piVar14 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }\n    return;\n  }\n  iVar17 = *(int *)(puVar30 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar30 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar30 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar32 = *(code **)(puVar30 + 0x1d3e7c);\n  iVar19 = iVar17;\n  (*pcVar32)();\n  puVar25 = *(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830);\n  uVar27 = *(uint *)(iVar19 + 0x24);\n  puStack_90 = (undefined *)puVar29;\n  iStack_a8 = iVar17;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar26;\n  pWStack_98 = unaff_s4;\n  pDStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar25 + 8))((int *)*puVar25);\n  uVar3 = puVar25[2];\n  if (uVar3 == 0) {\n    trap(7);\n  }\n  piVar18 = *(int **)(puVar25[1] + (uVar27 % uVar3) * 4);\n  if (piVar18 != (int *)0x0) {\n    uVar10 = ((int *)*piVar18)[1];\n    piVar14 = (int *)*piVar18;\n    do {\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    } while (uVar27 % uVar3 == uVar10 % uVar3);\n  }\n  pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\nLAB_0025e698:\n  (*pcVar31)();\n  puVar4 = (uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar4 + 7;\n  *puVar4 = uVar27;\n  iVar17 = *(int *)(pcVar32 + 0x1d3e44);\n  pcVar31 = *(code **)(pcVar32 + 0x1d8260);\n  puVar4[1] = (uint)puStack_b4;\n  uVar3 = *(uint *)(iVar17 + -0x636c);\n  puVar4[4] = 0;\n  puVar4[7] = 0;\n  puVar4[2] = 1;\n  puVar4[3] = 0;\n  puVar4[6] = 0;\n  puVar4[5] = uVar3;\n  iVar17 = (*pcVar31)(uVar27);\n  if (iVar17 == 0) {\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();\n    if (*piVar18 == 2) goto LAB_0025e80c;\n    if (*piVar18 == 0x14) goto LAB_0025e80c;\n    puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);\n    uVar3 = *puVar4;\n    uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);\n    (**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);\n    piVar18 = (int *)*puVar25;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar4 + 3;\n  puVar29 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n  if (iVar19 == 0) goto LAB_0025e7f8;\n  do {\n    iVar19 = iVar19 + 0x13;\n    puStack_d8 = puVar29;\n    iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);\n    (**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);\n    unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);\n    if (puVar4[2] == 0) {\n      trap(7);\n    }\n    puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);\n    if (piVar18 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\n    if (*piVar18 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }\n  } while( true );\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Dirsearch::" identifier : : identifier : :) (function_declarator "initialize(Dirsearch *this,Workqueue *workqueue,Dir_list *directories)" identifier (parameter_list "(Dirsearch *this,Workqueue *workqueue,Dir_list *directories)" ( (parameter_declaration "Dirsearch *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Workqueue *workqueue" type_identifier (pointer_declarator "*workqueue" * identifier)) , (parameter_declaration "Dir_list *directories" type_identifier (pointer_declarator "*directories" * identifier)) ))) (compound_statement "{\n  bool bVar1;\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  Task *t;\n  uint uVar3;\n  uint *puVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  __bucket_type *pp_Var8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  _Hash_node_base *p_Var12;\n  pointer pSVar13;\n  int *piVar14;\n  int *piVar15;\n  __bucket_type *pp_Var16;\n  int iVar17;\n  int *piVar18;\n  int iVar19;\n  _Hash_node_base *p_Var20;\n  int iVar21;\n  uint *puVar22;\n  pointer pSVar23;\n  int unaff_s1;\n  _func_int_varargs **pp_Var24;\n  Dir_list *unaff_s2;\n  undefined4 *puVar25;\n  Task_token *unaff_s3;\n  uint *puVar26;\n  Workqueue *unaff_s4;\n  uint uVar27;\n  Dirsearch *unaff_s5;\n  _func_int_varargs **pp_Var28;\n  uint *puVar29;\n  undefined *puVar30;\n  code *pcVar31;\n  code *pcVar32;\n  undefined4 uVar33;\n  uint uVar34;\n  uint *puStack_d8;\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_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  Dirsearch *pDStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  Dir_list *pDStack_44;\n  Task_token *pTStack_40;\n  code *pcStack_3c;\n  \n  puVar29 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar30 = PTR_s_alize_xindex_004323b4;\n    pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start;\n    unaff_s3 = &this->token_;\n    pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish;\n    bVar1 = (this->token_).is_blocker_;\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar33 = *(undefined4 *)(puVar30 + -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    *(int *)((int)puVar29 + -0x2830) = unaff_s1;\n    this->directories_ = directories;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar33;\n    unaff_s2 = directories;\n    unaff_s4 = workqueue;\n    unaff_s5 = this;\n    if (bVar1 != false) {\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);\n  }\n  piVar14 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar14,0x97,PTR_s__0043226c + 0x1398);\n                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */\n  iVar17 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar32 = anon_unknown.dwarf_196a6c5::Dir_cache_task::get_name;\n  piVar18 = piVar14;\n  puVar30 = PTR__Unwind_Resume_00432258;\n  (*(code *)PTR__Unwind_Resume_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar14;\n  iStack_48 = unaff_s1;\n  pDStack_44 = unaff_s2;\n  pTStack_40 = unaff_s3;\n  pcStack_3c = pcVar32;\n  (**(code **)(puVar30 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar26 = *(uint **)(iVar17 + 0x24);\n  uVar3 = (**(code **)(puVar30 + 0x1d83a0))(puVar26);\n  if (uVar3 <= 0x7fffffffU - iStack_64) {\n    piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);\n    piVar11 = piVar14 + 2;\n    *piVar18 = (int)(piVar18 + 2);\n    if ((int *)*piVar14 == piVar11) {\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }\n    else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }\n    piVar18[1] = piVar14[1];\n    *piVar14 = (int)piVar11;\n    piVar14[1] = 0;\n    *(undefined1 *)(piVar14 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }\n    return;\n  }\n  iVar17 = *(int *)(puVar30 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar30 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar30 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar32 = *(code **)(puVar30 + 0x1d3e7c);\n  iVar19 = iVar17;\n  (*pcVar32)();\n  puVar25 = *(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830);\n  uVar27 = *(uint *)(iVar19 + 0x24);\n  puStack_90 = (undefined *)puVar29;\n  iStack_a8 = iVar17;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar26;\n  pWStack_98 = unaff_s4;\n  pDStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar25 + 8))((int *)*puVar25);\n  uVar3 = puVar25[2];\n  if (uVar3 == 0) {\n    trap(7);\n  }\n  piVar18 = *(int **)(puVar25[1] + (uVar27 % uVar3) * 4);\n  if (piVar18 != (int *)0x0) {\n    uVar10 = ((int *)*piVar18)[1];\n    piVar14 = (int *)*piVar18;\n    do {\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    } while (uVar27 % uVar3 == uVar10 % uVar3);\n  }\n  pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\nLAB_0025e698:\n  (*pcVar31)();\n  puVar4 = (uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar4 + 7;\n  *puVar4 = uVar27;\n  iVar17 = *(int *)(pcVar32 + 0x1d3e44);\n  pcVar31 = *(code **)(pcVar32 + 0x1d8260);\n  puVar4[1] = (uint)puStack_b4;\n  uVar3 = *(uint *)(iVar17 + -0x636c);\n  puVar4[4] = 0;\n  puVar4[7] = 0;\n  puVar4[2] = 1;\n  puVar4[3] = 0;\n  puVar4[6] = 0;\n  puVar4[5] = uVar3;\n  iVar17 = (*pcVar31)(uVar27);\n  if (iVar17 == 0) {\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();\n    if (*piVar18 == 2) goto LAB_0025e80c;\n    if (*piVar18 == 0x14) goto LAB_0025e80c;\n    puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);\n    uVar3 = *puVar4;\n    uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);\n    (**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);\n    piVar18 = (int *)*puVar25;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar4 + 3;\n  puVar29 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n  if (iVar19 == 0) goto LAB_0025e7f8;\n  do {\n    iVar19 = iVar19 + 0x13;\n    puStack_d8 = puVar29;\n    iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);\n    (**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);\n    unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);\n    if (puVar4[2] == 0) {\n      trap(7);\n    }\n    puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);\n    if (piVar18 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\n    if (*piVar18 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }\n  } while( true );\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (ERROR "_Hashtable_alloc<std::allocator<std::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : :) (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Var2;" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Var2" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) >) , (binary_expression "_true>_>_>\n  *p_Var2" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (pointer_expression "*p_Var2" * identifier))) ;) (declaration "Task *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "__bucket_type *pp_Var8;" type_identifier (pointer_declarator "*pp_Var8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "_Hash_node_base *p_Var12;" type_identifier (pointer_declarator "*p_Var12" * identifier) ;) (declaration "pointer pSVar13;" type_identifier identifier ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "__bucket_type *pp_Var16;" type_identifier (pointer_declarator "*pp_Var16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "_Hash_node_base *p_Var20;" type_identifier (pointer_declarator "*p_Var20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "pointer pSVar23;" type_identifier identifier ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "_func_int_varargs **pp_Var24;" type_identifier (pointer_declarator "**pp_Var24" * (pointer_declarator "*pp_Var24" * identifier)) ;) (declaration "Dir_list *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "Task_token *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "Workqueue *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "Dirsearch *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "_func_int_varargs **pp_Var28;" type_identifier (pointer_declarator "**pp_Var28" * (pointer_declarator "*pp_Var28" * identifier)) ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "uint *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (ERROR "_Hashtable_alloc<std::allocator<std::" (binary_expression "_Hashtable_alloc<std::allocator<std" (binary_expression "_Hashtable_alloc<std" identifier < identifier) (ERROR "::allocator" : : identifier) < identifier) : :) (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Stack_d4;" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n  *p_Stack_d4" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) >) , (binary_expression "_true>_>_>\n  *p_Stack_d4" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (pointer_expression "*p_Stack_d4" * identifier))) ;) (declaration "uint uStack_d0;" type_identifier identifier ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "uint uStack_c4;" type_identifier identifier ;) (declaration "char acStack_c0 [4];" primitive_type (array_declarator "acStack_c0 [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "uint *puStack_b8;" type_identifier (pointer_declarator "*puStack_b8" * identifier) ;) (declaration "uint *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "undefined1 *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "undefined1 **ppuStack_a0;" type_identifier (pointer_declarator "**ppuStack_a0" * (pointer_declarator "*ppuStack_a0" * identifier)) ;) (declaration "uint *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "Workqueue *pWStack_98;" type_identifier (pointer_declarator "*pWStack_98" * identifier) ;) (declaration "Dirsearch *pDStack_94;" type_identifier (pointer_declarator "*pDStack_94" * identifier) ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "undefined1 *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "undefined1 auStack_60 [20];" type_identifier (array_declarator "auStack_60 [20]" identifier [ number_literal ]) ;) (declaration "int *piStack_4c;" primitive_type (pointer_declarator "*piStack_4c" * identifier) ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "Dir_list *pDStack_44;" type_identifier (pointer_declarator "*pDStack_44" * identifier) ;) (declaration "Task_token *pTStack_40;" type_identifier (pointer_declarator "*pTStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (expression_statement "puVar29 = (uint *)PTR__environ_00433318;" (assignment_expression "puVar29 = (uint *)PTR__environ_00433318" identifier = (cast_expression "(uint *)PTR__environ_00433318" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar30 = PTR_s_alize_xindex_004323b4;\n    pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start;\n    unaff_s3 = &this->token_;\n    pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish;\n    bVar1 = (this->token_).is_blocker_;\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar33 = *(undefined4 *)(puVar30 + -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    *(int *)((int)puVar29 + -0x2830) = unaff_s1;\n    this->directories_ = directories;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar33;\n    unaff_s2 = directories;\n    unaff_s4 = workqueue;\n    unaff_s5 = this;\n    if (bVar1 != false) {\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);\n  }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x2830) == 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + -0x2830) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x2830)" * (cast_expression "(int *)(PTR__environ_00433318 + -0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + -0x2830)" ( (binary_expression "PTR__environ_00433318 + -0x2830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */\n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar30 = PTR_s_alize_xindex_004323b4;\n    pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start;\n    unaff_s3 = &this->token_;\n    pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish;\n    bVar1 = (this->token_).is_blocker_;\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar33 = *(undefined4 *)(puVar30 + -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    *(int *)((int)puVar29 + -0x2830) = unaff_s1;\n    this->directories_ = directories;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar33;\n    unaff_s2 = directories;\n    unaff_s4 = workqueue;\n    unaff_s5 = this;\n    if (bVar1 != false) {\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }\n  }" { (expression_statement "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);" (assignment_expression "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)(0x20)" (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 "(0x20)" ( number_literal )))) ;) comment (expression_statement "(*(code *)PTR_Lock_00434030)(unaff_s1);" (call_expression "(*(code *)PTR_Lock_00434030)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_Lock_00434030)" ( (pointer_expression "*(code *)PTR_Lock_00434030" * (cast_expression "(code *)PTR_Lock_00434030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "puVar30 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar30 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (expression_statement "pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start;" (assignment_expression "pSVar23 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start" identifier = (field_expression "(directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_start" (field_expression "(directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl" (parenthesized_expression "(directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)" ( (ERROR "directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::" (comma_expression "directories->\n              super__Vector_base<gold::Search_directory,_std" (binary_expression "directories->\n              super__Vector_base<gold" (field_expression "directories->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Search_directory" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Search_directory>_>" (binary_expression "Search_directory>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "unaff_s3 = &this->token_;" (assignment_expression "unaff_s3 = &this->token_" identifier = (pointer_expression "&this->token_" & (field_expression "this->token_" identifier -> field_identifier))) ;) (expression_statement "pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish;" (assignment_expression "pSVar13 = (directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish" identifier = (field_expression "(directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl._M_finish" (field_expression "(directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>).\n              _M_impl" (parenthesized_expression "(directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>)" ( (ERROR "directories->\n              super__Vector_base<gold::Search_directory,_std::allocator<gold::" (comma_expression "directories->\n              super__Vector_base<gold::Search_directory,_std" (binary_expression "directories->\n              super__Vector_base<gold" (field_expression "directories->\n              super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Search_directory" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Search_directory>_>" (binary_expression "Search_directory>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "bVar1 = (this->token_).is_blocker_;" (assignment_expression "bVar1 = (this->token_).is_blocker_" identifier = (field_expression "(this->token_).is_blocker_" (parenthesized_expression "(this->token_)" ( (field_expression "this->token_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(int *)(unaff_s1 + 4)" * (cast_expression "(int *)(unaff_s1 + 4)" ( (type_descriptor "int *" primitive_type (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 "uVar33 = *(undefined4 *)(puVar30 + -0x636c);" (assignment_expression "uVar33 = *(undefined4 *)(puVar30 + -0x636c)" identifier = (pointer_expression "*(undefined4 *)(puVar30 + -0x636c)" * (cast_expression "(undefined4 *)(puVar30 + -0x636c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + -0x636c)" ( (binary_expression "puVar30 + -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 "*(int *)((int)puVar29 + -0x2830) = unaff_s1;" (assignment_expression "*(int *)((int)puVar29 + -0x2830) = unaff_s1" (pointer_expression "*(int *)((int)puVar29 + -0x2830)" * (cast_expression "(int *)((int)puVar29 + -0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar29 + -0x2830)" ( (binary_expression "(int)puVar29 + -0x2830" (cast_expression "(int)puVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "this->directories_ = directories;" (assignment_expression "this->directories_ = directories" (field_expression "this->directories_" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)(unaff_s1 + 0x14) = uVar33;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar33" (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 = directories;" (assignment_expression "unaff_s2 = directories" identifier = identifier) ;) (expression_statement "unaff_s4 = workqueue;" (assignment_expression "unaff_s4 = workqueue" identifier = identifier) ;) (expression_statement "unaff_s5 = this;" (assignment_expression "unaff_s5 = this" identifier = identifier) ;) (if_statement "if (bVar1 != false) {\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }" if (parenthesized_expression "(bVar1 != false)" ( (binary_expression "bVar1 != false" identifier != false) )) (compound_statement "{\n      (this->token_).writer_ = (Task *)0x0;\n      (this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;\n      if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }\n      return;\n    }" { (expression_statement "(this->token_).writer_ = (Task *)0x0;" (assignment_expression "(this->token_).writer_ = (Task *)0x0" (field_expression "(this->token_).writer_" (parenthesized_expression "(this->token_)" ( (field_expression "this->token_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249;" (assignment_expression "(this->token_).blockers_ =\n           (this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249" (field_expression "(this->token_).blockers_" (parenthesized_expression "(this->token_)" ( (field_expression "this->token_" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(this->token_).blockers_ + ((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249" (field_expression "(this->token_).blockers_" (parenthesized_expression "(this->token_)" ( (field_expression "this->token_" identifier -> field_identifier) )) . field_identifier) + (binary_expression "((int)pSVar13 - (int)pSVar23 >> 2) * -0x49249249" (parenthesized_expression "((int)pSVar13 - (int)pSVar23 >> 2)" ( (binary_expression "(int)pSVar13 - (int)pSVar23 >> 2" (binary_expression "(int)pSVar13 - (int)pSVar23" (cast_expression "(int)pSVar13" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pSVar23" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal))) ;) (if_statement "if (pSVar23 != pSVar13) {\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }" if (parenthesized_expression "(pSVar23 != pSVar13)" ( (binary_expression "pSVar23 != pSVar13" identifier != identifier) )) (compound_statement "{\n        pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);\n        do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);\n      }" { (expression_statement "pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48);" (assignment_expression "pp_Var28 = (_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48)" identifier = (cast_expression "(_func_int_varargs **)(PTR_PTR__wfilebuf_004321f8 + -0x6d48)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_PTR__wfilebuf_004321f8 + -0x6d48)" ( (binary_expression "PTR_PTR__wfilebuf_004321f8 + -0x6d48" identifier + number_literal) )))) ;) (do_statement "do {\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        } while ((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23);" do (compound_statement "{\n          pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;\n          pSVar23 = pSVar23 + 1;\n          t = (Task *)(*(code *)PTR_operator_new_0043233c)(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 = pp_Var28;\n          t[1]._vptr_Task = pp_Var24;\n          t[1].list_next_ = (Task *)unaff_s3;\n          Workqueue::queue(workqueue,t);\n        }" { (expression_statement "pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p;" (assignment_expression "pp_Var24 = (_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p" identifier = (cast_expression "(_func_int_varargs **)(pSVar23->name_)._M_dataplus._M_p" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (field_expression "(pSVar23->name_)._M_dataplus._M_p" (field_expression "(pSVar23->name_)._M_dataplus" (parenthesized_expression "(pSVar23->name_)" ( (field_expression "pSVar23->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "pSVar23 = pSVar23 + 1;" (assignment_expression "pSVar23 = pSVar23 + 1" identifier = (binary_expression "pSVar23 + 1" identifier + number_literal)) ;) (expression_statement "t = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);" (assignment_expression "t = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" identifier = (cast_expression "(Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(0x2c)" (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 "(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 = pp_Var28;" (assignment_expression "t->_vptr_Task = pp_Var28" (field_expression "t->_vptr_Task" identifier -> field_identifier) = identifier) ;) (expression_statement "t[1]._vptr_Task = pp_Var24;" (assignment_expression "t[1]._vptr_Task = pp_Var24" (field_expression "t[1]._vptr_Task" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "t[1].list_next_ = (Task *)unaff_s3;" (assignment_expression "t[1].list_next_ = (Task *)unaff_s3" (field_expression "t[1].list_next_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(Task *)unaff_s3" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "Workqueue::queue(workqueue,t);" statement_identifier : (ERROR ":" :) (expression_statement "queue(workqueue,t);" (call_expression "queue(workqueue,t)" identifier (argument_list "(workqueue,t)" ( identifier , identifier ))) ;)) }) while (parenthesized_expression "((directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23)" ( (binary_expression "(directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish != pSVar23" (field_expression "(directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl._M_finish" (field_expression "(directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )._M_impl" (parenthesized_expression "(directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::Search_directory>_>\n                 )" ( (ERROR "directories->\n                 super__Vector_base<gold::Search_directory,_std::allocator<gold::" (comma_expression "directories->\n                 super__Vector_base<gold::Search_directory,_std" (binary_expression "directories->\n                 super__Vector_base<gold" (field_expression "directories->\n                 super__Vector_base" identifier -> field_identifier) < identifier) (ERROR "::Search_directory" : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (binary_expression "Search_directory>_>" (binary_expression "Search_directory>_" identifier > identifier) > identifier) )) . field_identifier) . field_identifier) != identifier) )) ;) })) (return_statement "return;" return ;) })) }) (else_clause "else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);\n  }" else (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s__0043226c + 0x12f0,0xe7,PTR_s__0043226c + 0x13a8)" ( (binary_expression "PTR_s__0043226c + 0x12f0" identifier + number_literal) , number_literal , (binary_expression "PTR_s__0043226c + 0x13a8" identifier + number_literal) ))) ;) }))) (expression_statement "piVar14 = (int *)(PTR_LAB_0043220c + 0x48a0);" (assignment_expression "piVar14 = (int *)(PTR_LAB_0043220c + 0x48a0)" identifier = (cast_expression "(int *)(PTR_LAB_0043220c + 0x48a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0043220c + 0x48a0)" ( (binary_expression "PTR_LAB_0043220c + 0x48a0" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar14,0x97,PTR_s__0043226c + 0x1398);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar14,0x97,PTR_s__0043226c + 0x1398)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar14,0x97,PTR_s__0043226c + 0x1398)" ( identifier , number_literal , (binary_expression "PTR_s__0043226c + 0x1398" identifier + number_literal) ))) ;) comment (expression_statement "iVar17 = 0x20;" (assignment_expression "iVar17 = 0x20" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_operator_delete_004323c0)(unaff_s1);" (call_expression "(*(code *)PTR_operator_delete_004323c0)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004323c0)" ( (pointer_expression "*(code *)PTR_operator_delete_004323c0" * (cast_expression "(code *)PTR_operator_delete_004323c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (ERROR "pcVar32 = anon_unknown.dwarf_196a6c5::" (assignment_expression "pcVar32 = 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 "piVar18 = piVar14;" (assignment_expression "piVar18 = piVar14" identifier = identifier) ;) (expression_statement "puVar30 = PTR__Unwind_Resume_00432258;" (assignment_expression "puVar30 = PTR__Unwind_Resume_00432258" identifier = identifier) ;) (expression_statement "(*(code *)PTR__Unwind_Resume_00432258)();" (call_expression "(*(code *)PTR__Unwind_Resume_00432258)()" (parenthesized_expression "(*(code *)PTR__Unwind_Resume_00432258)" ( (pointer_expression "*(code *)PTR__Unwind_Resume_00432258" * (cast_expression "(code *)PTR__Unwind_Resume_00432258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_68 = auStack_60;" (assignment_expression "puStack_68 = auStack_60" identifier = identifier) ;) (expression_statement "piStack_4c = piVar14;" (assignment_expression "piStack_4c = piVar14" identifier = identifier) ;) (expression_statement "iStack_48 = unaff_s1;" (assignment_expression "iStack_48 = unaff_s1" identifier = identifier) ;) (expression_statement "pDStack_44 = unaff_s2;" (assignment_expression "pDStack_44 = unaff_s2" identifier = identifier) ;) (expression_statement "pTStack_40 = unaff_s3;" (assignment_expression "pTStack_40 = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar32;" (assignment_expression "pcStack_3c = pcVar32" identifier = identifier) ;) (expression_statement "(**(code **)(puVar30 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(puVar30 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(puVar30 + 0x1d40ac))" ( (pointer_expression "**(code **)(puVar30 + 0x1d40ac)" * (pointer_expression "*(code **)(puVar30 + 0x1d40ac)" * (cast_expression "(code **)(puVar30 + 0x1d40ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d40ac)" ( (binary_expression "puVar30 + 0x1d40ac" identifier + number_literal) ))))) )) (argument_list "(&puStack_68,*(int *)(puVar30 + 0x1d3e90) + 0x1308,*(int *)(puVar30 + 0x1d3e90) + 0x1317\n             ,0)" ( (pointer_expression "&puStack_68" & identifier) , (binary_expression "*(int *)(puVar30 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(puVar30 + 0x1d3e90)" * (cast_expression "(int *)(puVar30 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x1d3e90)" ( (binary_expression "puVar30 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar30 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(puVar30 + 0x1d3e90)" * (cast_expression "(int *)(puVar30 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x1d3e90)" ( (binary_expression "puVar30 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar26 = *(uint **)(iVar17 + 0x24);" (assignment_expression "puVar26 = *(uint **)(iVar17 + 0x24)" identifier = (pointer_expression "*(uint **)(iVar17 + 0x24)" * (cast_expression "(uint **)(iVar17 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = (**(code **)(puVar30 + 0x1d83a0))(puVar26);" (assignment_expression "uVar3 = (**(code **)(puVar30 + 0x1d83a0))(puVar26)" identifier = (call_expression "(**(code **)(puVar30 + 0x1d83a0))(puVar26)" (parenthesized_expression "(**(code **)(puVar30 + 0x1d83a0))" ( (pointer_expression "**(code **)(puVar30 + 0x1d83a0)" * (pointer_expression "*(code **)(puVar30 + 0x1d83a0)" * (cast_expression "(code **)(puVar30 + 0x1d83a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d83a0)" ( (binary_expression "puVar30 + 0x1d83a0" identifier + number_literal) ))))) )) (argument_list "(puVar26)" ( identifier )))) ;) (if_statement "if (uVar3 <= 0x7fffffffU - iStack_64) {\n    piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);\n    piVar11 = piVar14 + 2;\n    *piVar18 = (int)(piVar18 + 2);\n    if ((int *)*piVar14 == piVar11) {\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }\n    else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }\n    piVar18[1] = piVar14[1];\n    *piVar14 = (int)piVar11;\n    piVar14[1] = 0;\n    *(undefined1 *)(piVar14 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }\n    return;\n  }" if (parenthesized_expression "(uVar3 <= 0x7fffffffU - iStack_64)" ( (binary_expression "uVar3 <= 0x7fffffffU - iStack_64" identifier <= (binary_expression "0x7fffffffU - iStack_64" number_literal - identifier)) )) (compound_statement "{\n    piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);\n    piVar11 = piVar14 + 2;\n    *piVar18 = (int)(piVar18 + 2);\n    if ((int *)*piVar14 == piVar11) {\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }\n    else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }\n    piVar18[1] = piVar14[1];\n    *piVar14 = (int)piVar11;\n    piVar14[1] = 0;\n    *(undefined1 *)(piVar14 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }\n    return;\n  }" { (expression_statement "piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3);" (assignment_expression "piVar14 = (int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3)" identifier = (cast_expression "(int *)(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar30 + 0x1d4874))(&puStack_68,puVar26,uVar3)" (parenthesized_expression "(**(code **)(puVar30 + 0x1d4874))" ( (pointer_expression "**(code **)(puVar30 + 0x1d4874)" * (pointer_expression "*(code **)(puVar30 + 0x1d4874)" * (cast_expression "(code **)(puVar30 + 0x1d4874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d4874)" ( (binary_expression "puVar30 + 0x1d4874" identifier + number_literal) ))))) )) (argument_list "(&puStack_68,puVar26,uVar3)" ( (pointer_expression "&puStack_68" & identifier) , identifier , identifier ))))) ;) (expression_statement "piVar11 = piVar14 + 2;" (assignment_expression "piVar11 = piVar14 + 2" identifier = (binary_expression "piVar14 + 2" identifier + number_literal)) ;) (expression_statement "*piVar18 = (int)(piVar18 + 2);" (assignment_expression "*piVar18 = (int)(piVar18 + 2)" (pointer_expression "*piVar18" * identifier) = (cast_expression "(int)(piVar18 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar18 + 2)" ( (binary_expression "piVar18 + 2" identifier + number_literal) )))) ;) (if_statement "if ((int *)*piVar14 == piVar11) {\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }\n    else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }" if (parenthesized_expression "((int *)*piVar14 == piVar11)" ( (binary_expression "(int *)*piVar14 == piVar11" (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier)) == identifier) )) (compound_statement "{\n      iVar21 = piVar14[3];\n      iVar19 = piVar14[4];\n      iVar17 = piVar14[5];\n      piVar18[2] = *piVar11;\n      piVar18[3] = iVar21;\n      piVar18[4] = iVar19;\n      piVar18[5] = iVar17;\n    }" { (expression_statement "iVar21 = piVar14[3];" (assignment_expression "iVar21 = piVar14[3]" identifier = (subscript_expression "piVar14[3]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = piVar14[4];" (assignment_expression "iVar19 = piVar14[4]" identifier = (subscript_expression "piVar14[4]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = piVar14[5];" (assignment_expression "iVar17 = piVar14[5]" identifier = (subscript_expression "piVar14[5]" identifier [ number_literal ])) ;) (expression_statement "piVar18[2] = *piVar11;" (assignment_expression "piVar18[2] = *piVar11" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "piVar18[3] = iVar21;" (assignment_expression "piVar18[3] = iVar21" (subscript_expression "piVar18[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar18[4] = iVar19;" (assignment_expression "piVar18[4] = iVar19" (subscript_expression "piVar18[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar18[5] = iVar17;" (assignment_expression "piVar18[5] = iVar17" (subscript_expression "piVar18[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }" else (compound_statement "{\n      *piVar18 = *piVar14;\n      piVar18[2] = piVar14[2];\n    }" { (expression_statement "*piVar18 = *piVar14;" (assignment_expression "*piVar18 = *piVar14" (pointer_expression "*piVar18" * identifier) = (pointer_expression "*piVar14" * identifier)) ;) (expression_statement "piVar18[2] = piVar14[2];" (assignment_expression "piVar18[2] = piVar14[2]" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = (subscript_expression "piVar14[2]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar18[1] = piVar14[1];" (assignment_expression "piVar18[1] = piVar14[1]" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar14 = (int)piVar11;" (assignment_expression "*piVar14 = (int)piVar11" (pointer_expression "*piVar14" * identifier) = (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar14[1] = 0;" (assignment_expression "piVar14[1] = 0" (subscript_expression "piVar14[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar14 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar14 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar14 + 2)" * (cast_expression "(undefined1 *)(piVar14 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar14 + 2)" ( (binary_expression "piVar14 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puStack_68 != auStack_60) {\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }" if (parenthesized_expression "(puStack_68 != auStack_60)" ( (binary_expression "puStack_68 != auStack_60" identifier != identifier) )) (compound_statement "{\n      (**(code **)(puVar30 + 0x1d3eb0))();\n    }" { (expression_statement "(**(code **)(puVar30 + 0x1d3eb0))();" (call_expression "(**(code **)(puVar30 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(puVar30 + 0x1d3eb0))" ( (pointer_expression "**(code **)(puVar30 + 0x1d3eb0)" * (pointer_expression "*(code **)(puVar30 + 0x1d3eb0)" * (cast_expression "(code **)(puVar30 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d3eb0)" ( (binary_expression "puVar30 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "iVar17 = *(int *)(puVar30 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar17 = *(int *)(puVar30 + 0x1d3fd8) + -0x6240" identifier = (binary_expression "*(int *)(puVar30 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(puVar30 + 0x1d3fd8)" * (cast_expression "(int *)(puVar30 + 0x1d3fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0x1d3fd8)" ( (binary_expression "puVar30 + 0x1d3fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar30 + 0x1d40a4))();" (call_expression "(**(code **)(puVar30 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(puVar30 + 0x1d40a4))" ( (pointer_expression "**(code **)(puVar30 + 0x1d40a4)" * (pointer_expression "*(code **)(puVar30 + 0x1d40a4)" * (cast_expression "(code **)(puVar30 + 0x1d40a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d40a4)" ( (binary_expression "puVar30 + 0x1d40a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (puStack_68 != auStack_60) {\n    (**(code **)(puVar30 + 0x1d3eb0))(puStack_68);\n  }" if (parenthesized_expression "(puStack_68 != auStack_60)" ( (binary_expression "puStack_68 != auStack_60" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar30 + 0x1d3eb0))(puStack_68);\n  }" { (expression_statement "(**(code **)(puVar30 + 0x1d3eb0))(puStack_68);" (call_expression "(**(code **)(puVar30 + 0x1d3eb0))(puStack_68)" (parenthesized_expression "(**(code **)(puVar30 + 0x1d3eb0))" ( (pointer_expression "**(code **)(puVar30 + 0x1d3eb0)" * (pointer_expression "*(code **)(puVar30 + 0x1d3eb0)" * (cast_expression "(code **)(puVar30 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d3eb0)" ( (binary_expression "puVar30 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "(puStack_68)" ( identifier ))) ;) })) (expression_statement "pcVar32 = *(code **)(puVar30 + 0x1d3e7c);" (assignment_expression "pcVar32 = *(code **)(puVar30 + 0x1d3e7c)" identifier = (pointer_expression "*(code **)(puVar30 + 0x1d3e7c)" * (cast_expression "(code **)(puVar30 + 0x1d3e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0x1d3e7c)" ( (binary_expression "puVar30 + 0x1d3e7c" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = iVar17;" (assignment_expression "iVar19 = iVar17" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar25 = *(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar25 = *(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830)" * (cast_expression "(undefined4 **)(*(int *)(pcVar32 + 0x1d4da8) + -0x2830)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x1d4da8) + -0x2830)" ( (binary_expression "*(int *)(pcVar32 + 0x1d4da8) + -0x2830" (pointer_expression "*(int *)(pcVar32 + 0x1d4da8)" * (cast_expression "(int *)(pcVar32 + 0x1d4da8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d4da8)" ( (binary_expression "pcVar32 + 0x1d4da8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar27 = *(uint *)(iVar19 + 0x24);" (assignment_expression "uVar27 = *(uint *)(iVar19 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar19 + 0x24)" * (cast_expression "(uint *)(iVar19 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24)" ( (binary_expression "iVar19 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puStack_90 = (undefined *)puVar29;" (assignment_expression "puStack_90 = (undefined *)puVar29" identifier = (cast_expression "(undefined *)puVar29" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_a8 = iVar17;" (assignment_expression "iStack_a8 = iVar17" identifier = identifier) ;) (expression_statement "puStack_a4 = auStack_60;" (assignment_expression "puStack_a4 = auStack_60" identifier = identifier) ;) (expression_statement "ppuStack_a0 = &puStack_68;" (assignment_expression "ppuStack_a0 = &puStack_68" identifier = (pointer_expression "&puStack_68" & identifier)) ;) (expression_statement "puStack_9c = puVar26;" (assignment_expression "puStack_9c = puVar26" identifier = identifier) ;) (expression_statement "pWStack_98 = unaff_s4;" (assignment_expression "pWStack_98 = unaff_s4" identifier = identifier) ;) (expression_statement "pDStack_94 = unaff_s5;" (assignment_expression "pDStack_94 = unaff_s5" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)*puVar25 + 8))((int *)*puVar25);" (call_expression "(**(code **)(*(int *)*puVar25 + 8))((int *)*puVar25)" (parenthesized_expression "(**(code **)(*(int *)*puVar25 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar25 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar25 + 8)" * (cast_expression "(code **)(*(int *)*puVar25 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar25 + 8)" ( (binary_expression "*(int *)*puVar25 + 8" (pointer_expression "*(int *)*puVar25" * (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar25)" ( (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier)) ))) ;) (expression_statement "uVar3 = puVar25[2];" (assignment_expression "uVar3 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 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 "piVar18 = *(int **)(puVar25[1] + (uVar27 % uVar3) * 4);" (assignment_expression "piVar18 = *(int **)(puVar25[1] + (uVar27 % uVar3) * 4)" identifier = (pointer_expression "*(int **)(puVar25[1] + (uVar27 % uVar3) * 4)" * (cast_expression "(int **)(puVar25[1] + (uVar27 % uVar3) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25[1] + (uVar27 % uVar3) * 4)" ( (binary_expression "puVar25[1] + (uVar27 % uVar3) * 4" (subscript_expression "puVar25[1]" identifier [ number_literal ]) + (binary_expression "(uVar27 % uVar3) * 4" (parenthesized_expression "(uVar27 % uVar3)" ( (binary_expression "uVar27 % uVar3" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar18 != (int *)0x0) {\n    uVar10 = ((int *)*piVar18)[1];\n    piVar14 = (int *)*piVar18;\n    do {\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    } while (uVar27 % uVar3 == uVar10 % uVar3);\n  }" if (parenthesized_expression "(piVar18 != (int *)0x0)" ( (binary_expression "piVar18 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar10 = ((int *)*piVar18)[1];\n    piVar14 = (int *)*piVar18;\n    do {\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    } while (uVar27 % uVar3 == uVar10 % uVar3);\n  }" { (expression_statement "uVar10 = ((int *)*piVar18)[1];" (assignment_expression "uVar10 = ((int *)*piVar18)[1]" identifier = (subscript_expression "((int *)*piVar18)[1]" (parenthesized_expression "((int *)*piVar18)" ( (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar14 = (int *)*piVar18;" (assignment_expression "piVar14 = (int *)*piVar18" identifier = (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (do_statement "do {\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    } while (uVar27 % uVar3 == uVar10 % uVar3);" do (compound_statement "{\n      piVar11 = piVar14;\n      if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }\n      piVar14 = (int *)*piVar11;\n      if (piVar14 == (int *)0x0) break;\n      uVar10 = piVar14[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18 = piVar11;\n    }" { (expression_statement "piVar11 = piVar14;" (assignment_expression "piVar11 = piVar14" identifier = identifier) ;) (if_statement "if (uVar27 == uVar10) {\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }" if (parenthesized_expression "(uVar27 == uVar10)" ( (binary_expression "uVar27 == uVar10" identifier == identifier) )) (compound_statement "{\n        pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);\n        if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }\n        goto LAB_0025e698;\n      }" { (expression_statement "pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);" (assignment_expression "pcVar31 = *(code **)(*(int *)*puVar25 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar25 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar25 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar25 + 0xc)" ( (binary_expression "*(int *)*puVar25 + 0xc" (pointer_expression "*(int *)*puVar25" * (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)) {\n          (*pcVar31)();\n          return;\n        }" if (parenthesized_expression "((*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0))" ( (binary_expression "(*piVar18 != 0) && (*(int *)(*piVar18 + 8) != 0)" (parenthesized_expression "(*piVar18 != 0)" ( (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar18 + 8) != 0)" ( (binary_expression "*(int *)(*piVar18 + 8) != 0" (pointer_expression "*(int *)(*piVar18 + 8)" * (cast_expression "(int *)(*piVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + 8)" ( (binary_expression "*piVar18 + 8" (pointer_expression "*piVar18" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          (*pcVar31)();\n          return;\n        }" { (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0025e698;" goto statement_identifier ;) })) (expression_statement "piVar14 = (int *)*piVar11;" (assignment_expression "piVar14 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (if_statement "if (piVar14 == (int *)0x0) break;" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = piVar14[1];" (assignment_expression "uVar10 = piVar14[1]" identifier = (subscript_expression "piVar14[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar3 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 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 "piVar18 = piVar11;" (assignment_expression "piVar18 = piVar11" identifier = identifier) ;) }) while (parenthesized_expression "(uVar27 % uVar3 == uVar10 % uVar3)" ( (binary_expression "uVar27 % uVar3 == uVar10 % uVar3" (binary_expression "uVar27 % uVar3" identifier % identifier) == (binary_expression "uVar10 % uVar3" identifier % identifier)) )) ;) })) (expression_statement "pcVar31 = *(code **)(*(int *)*puVar25 + 0xc);" (assignment_expression "pcVar31 = *(code **)(*(int *)*puVar25 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar25 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar25 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar25 + 0xc)" ( (binary_expression "*(int *)*puVar25 + 0xc" (pointer_expression "*(int *)*puVar25" * (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0025e698:\n  (*pcVar31)();" statement_identifier : (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar4 = (uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20);" (assignment_expression "puVar4 = (uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20)" identifier = (cast_expression "(uint *)(**(code **)(pcVar32 + 0x1d3dcc))(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d3dcc))(0x20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar32 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3dcc)" ( (binary_expression "pcVar32 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "puStack_b4 = puVar4 + 7;" (assignment_expression "puStack_b4 = puVar4 + 7" identifier = (binary_expression "puVar4 + 7" identifier + number_literal)) ;) (expression_statement "*puVar4 = uVar27;" (assignment_expression "*puVar4 = uVar27" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "iVar17 = *(int *)(pcVar32 + 0x1d3e44);" (assignment_expression "iVar17 = *(int *)(pcVar32 + 0x1d3e44)" identifier = (pointer_expression "*(int *)(pcVar32 + 0x1d3e44)" * (cast_expression "(int *)(pcVar32 + 0x1d3e44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d3e44)" ( (binary_expression "pcVar32 + 0x1d3e44" identifier + number_literal) ))))) ;) (expression_statement "pcVar31 = *(code **)(pcVar32 + 0x1d8260);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x1d8260)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x1d8260)" * (cast_expression "(code **)(pcVar32 + 0x1d8260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d8260)" ( (binary_expression "pcVar32 + 0x1d8260" identifier + number_literal) ))))) ;) (expression_statement "puVar4[1] = (uint)puStack_b4;" (assignment_expression "puVar4[1] = (uint)puStack_b4" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_b4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar3 = *(uint *)(iVar17 + -0x636c);" (assignment_expression "uVar3 = *(uint *)(iVar17 + -0x636c)" identifier = (pointer_expression "*(uint *)(iVar17 + -0x636c)" * (cast_expression "(uint *)(iVar17 + -0x636c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + -0x636c)" ( (binary_expression "iVar17 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "puVar4[4] = 0;" (assignment_expression "puVar4[4] = 0" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[2] = 1;" (assignment_expression "puVar4[2] = 1" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[5] = uVar3;" (assignment_expression "puVar4[5] = uVar3" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = (*pcVar31)(uVar27);" (assignment_expression "iVar17 = (*pcVar31)(uVar27)" identifier = (call_expression "(*pcVar31)(uVar27)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(uVar27)" ( identifier )))) ;) (if_statement "if (iVar17 == 0) {\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();\n    if (*piVar18 == 2) goto LAB_0025e80c;\n    if (*piVar18 == 0x14) goto LAB_0025e80c;\n    puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);\n    uVar3 = *puVar4;\n    uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);\n    (**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);\n    piVar18 = (int *)*puVar25;\n    goto LAB_0025e810;\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();\n    if (*piVar18 == 2) goto LAB_0025e80c;\n    if (*piVar18 == 0x14) goto LAB_0025e80c;\n    puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);\n    uVar3 = *puVar4;\n    uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);\n    (**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);\n    piVar18 = (int *)*puVar25;\n    goto LAB_0025e810;\n  }" { (expression_statement "piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))();" (assignment_expression "piVar18 = (int *)(**(code **)(pcVar32 + 0x1d8394))()" identifier = (cast_expression "(int *)(**(code **)(pcVar32 + 0x1d8394))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar32 + 0x1d8394)" * (cast_expression "(code **)(pcVar32 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d8394)" ( (binary_expression "pcVar32 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (if_statement "if (*piVar18 == 2) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar18 == 2)" ( (binary_expression "*piVar18 == 2" (pointer_expression "*piVar18" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (if_statement "if (*piVar18 == 0x14) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar18 == 0x14)" ( (binary_expression "*piVar18 == 0x14" (pointer_expression "*piVar18" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (expression_statement "puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar26 = (uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318)" identifier = (cast_expression "(uint *)(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d82a8))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d82a8))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d82a8)" * (pointer_expression "*(code **)(pcVar32 + 0x1d82a8)" * (cast_expression "(code **)(pcVar32 + 0x1d82a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d82a8)" ( (binary_expression "pcVar32 + 0x1d82a8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar32 + 0x1d3cfc) + 0x1318)" ( (binary_expression "*(int *)(pcVar32 + 0x1d3cfc) + 0x1318" (pointer_expression "*(int *)(pcVar32 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar32 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d3cfc)" ( (binary_expression "pcVar32 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar3 = *puVar4;" (assignment_expression "uVar3 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18);" (assignment_expression "uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*piVar18)" identifier = (call_expression "(**(code **)(pcVar32 + 0x1d8374))(*piVar18)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar32 + 0x1d8374)" * (cast_expression "(code **)(pcVar32 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d8374)" ( (binary_expression "pcVar32 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*piVar18)" ( (pointer_expression "*piVar18" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33);" (call_expression "(**(code **)(pcVar32 + 0x1d4814))(puVar26,uVar3,uVar33)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d4814))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d4814)" * (pointer_expression "*(code **)(pcVar32 + 0x1d4814)" * (cast_expression "(code **)(pcVar32 + 0x1d4814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d4814)" ( (binary_expression "pcVar32 + 0x1d4814" identifier + number_literal) ))))) )) (argument_list "(puVar26,uVar3,uVar33)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar18 = (int *)*puVar25;" (assignment_expression "piVar18 = (int *)*puVar25" identifier = (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier))) ;) (goto_statement "goto LAB_0025e810;" goto statement_identifier ;) })) (expression_statement "puStack_b8 = puVar4 + 3;" (assignment_expression "puStack_b8 = puVar4 + 3" identifier = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) (expression_statement "puVar29 = &uStack_d0;" (assignment_expression "puVar29 = &uStack_d0" identifier = (pointer_expression "&uStack_d0" & identifier)) ;) (expression_statement "pcStack_b0 = (code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_b0 = (code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58)" identifier = (cast_expression "(code *)(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x1d71a4) + -0x1e58)" ( (binary_expression "*(int *)(pcVar32 + 0x1d71a4) + -0x1e58" (pointer_expression "*(int *)(pcVar32 + 0x1d71a4)" * (cast_expression "(int *)(pcVar32 + 0x1d71a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d71a4)" ( (binary_expression "pcVar32 + 0x1d71a4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0025e720:\n  iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);" statement_identifier : (expression_statement "iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);" (assignment_expression "iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17)" identifier = (call_expression "(**(code **)(pcVar32 + 0x1d822c))(iVar17)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d822c)" * (cast_expression "(code **)(pcVar32 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d822c)" ( (binary_expression "pcVar32 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar17)" ( identifier )))) ;)) (if_statement "if (iVar19 == 0) goto LAB_0025e7f8;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025e7f8;" goto statement_identifier ;)) (do_statement "do {\n    iVar19 = iVar19 + 0x13;\n    puStack_d8 = puVar29;\n    iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);\n    (**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);\n    unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);\n    if (puVar4[2] == 0) {\n      trap(7);\n    }\n    puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);\n    if (piVar18 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\n    if (*piVar18 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar19 = iVar19 + 0x13;\n    puStack_d8 = puVar29;\n    iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);\n    (**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);\n    unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);\n    if (puVar4[2] == 0) {\n      trap(7);\n    }\n    puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);\n    piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);\n    if (piVar18 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\n    if (*piVar18 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }\n  }" { (expression_statement "iVar19 = iVar19 + 0x13;" (assignment_expression "iVar19 = iVar19 + 0x13" identifier = (binary_expression "iVar19 + 0x13" identifier + number_literal)) ;) (expression_statement "puStack_d8 = puVar29;" (assignment_expression "puStack_d8 = puVar29" identifier = identifier) ;) (expression_statement "iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19);" (assignment_expression "iVar21 = (**(code **)(pcVar32 + 0x1d820c))(iVar19)" identifier = (call_expression "(**(code **)(pcVar32 + 0x1d820c))(iVar19)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d820c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d820c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d820c)" * (cast_expression "(code **)(pcVar32 + 0x1d820c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d820c)" ( (binary_expression "pcVar32 + 0x1d820c" identifier + number_literal) ))))) )) (argument_list "(iVar19)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0);" (call_expression "(**(code **)(pcVar32 + 0x1d3f18))(&puStack_d8,iVar19,iVar19 + iVar21,0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3f18))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3f18)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3f18)" * (cast_expression "(code **)(pcVar32 + 0x1d3f18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3f18)" ( (binary_expression "pcVar32 + 0x1d3f18" identifier + number_literal) ))))) )) (argument_list "(&puStack_d8,iVar19,iVar19 + iVar21,0)" ( (pointer_expression "&puStack_d8" & identifier) , identifier , (binary_expression "iVar19 + iVar21" identifier + identifier) , number_literal ))) ;) (expression_statement "unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907);" (assignment_expression "unaff_s5 = (Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907)" identifier = (cast_expression "(Dirsearch *)(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907)" ( (type_descriptor "Dirsearch *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d4af0))(puStack_d8,p_Stack_d4,0xc70f6907)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d4af0))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d4af0)" * (pointer_expression "*(code **)(pcVar32 + 0x1d4af0)" * (cast_expression "(code **)(pcVar32 + 0x1d4af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d4af0)" ( (binary_expression "pcVar32 + 0x1d4af0" identifier + number_literal) ))))) )) (argument_list "(puStack_d8,p_Stack_d4,0xc70f6907)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar4[2] == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(puVar4[2] == 0)" ( (binary_expression "puVar4[2] == 0" (subscript_expression "puVar4[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 "puVar26 = (uint *)((uint)unaff_s5 % puVar4[2]);" (assignment_expression "puVar26 = (uint *)((uint)unaff_s5 % puVar4[2])" identifier = (cast_expression "(uint *)((uint)unaff_s5 % puVar4[2])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s5 % puVar4[2])" ( (binary_expression "(uint)unaff_s5 % puVar4[2]" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % (subscript_expression "puVar4[2]" identifier [ number_literal ])) )))) ;) (expression_statement "piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5);" (assignment_expression "piVar18 = (int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5)" identifier = (cast_expression "(int *)(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d4f88))(puVar4 + 1,puVar26,&puStack_d8,unaff_s5)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d4f88))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d4f88)" * (pointer_expression "*(code **)(pcVar32 + 0x1d4f88)" * (cast_expression "(code **)(pcVar32 + 0x1d4f88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d4f88)" ( (binary_expression "pcVar32 + 0x1d4f88" identifier + number_literal) ))))) )) (argument_list "(puVar4 + 1,puVar26,&puStack_d8,unaff_s5)" ( (binary_expression "puVar4 + 1" identifier + number_literal) , identifier , (pointer_expression "&puStack_d8" & identifier) , identifier ))))) ;) (if_statement "if (piVar18 == (int *)0x0) goto LAB_0025e8e0;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (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 "pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar32 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3dcc)" ( (binary_expression "pcVar32 + 0x1d3dcc" identifier + number_literal) ))))) ;) (if_statement "if (*piVar18 == 0) goto LAB_0025e8e4;" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e8e4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (puStack_d8 == puVar29) goto LAB_0025e720;\n      (**(code **)(pcVar32 + 0x1d3d1c))();\n      iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);\n      if (iVar19 != 0) break;\nLAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);\n      if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);\n      piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);\n      uVar3 = puVar25[2];\n      iVar19 = puVar25[1];\n      if (uVar3 == 0) {\n        trap(7);\n      }\n      piVar18[2] = (int)puVar4;\n      *piVar18 = 0;\n      piVar18[1] = uVar27;\n      puVar4 = (uint *)((uVar27 % uVar3) * 4);\n      piVar14 = *(int **)(iVar19 + (int)puVar4);\n      if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }\n      uVar10 = ((int *)*piVar14)[1];\n      piVar11 = (int *)*piVar14;\n      while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }\n      if (*piVar14 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar32 + 0x1d3d1c))(piVar18);\n      (**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);\n      p_Var2 = p_Stack_d4;\n      *puVar5 = 0;\n      puVar5[1] = (uint)(puVar5 + 3);\n      if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }\n      uStack_ac = puVar4[6];\n      uVar10 = puVar4[4];\n      uVar3 = puVar4[2];\n      pcVar31 = *(code **)(pcVar32 + 0x1d45c0);\n      p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;\n      (*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);\n      uVar3 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }\n      puVar4[4] = puVar4[4] + 1;\n    }" { (if_statement "if (puStack_d8 == puVar29) goto LAB_0025e720;" if (parenthesized_expression "(puStack_d8 == puVar29)" ( (binary_expression "puStack_d8 == puVar29" identifier == identifier) )) (goto_statement "goto LAB_0025e720;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar32 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar32 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar32 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3d1c)" ( (binary_expression "pcVar32 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17);" (assignment_expression "iVar19 = (**(code **)(pcVar32 + 0x1d822c))(iVar17)" identifier = (call_expression "(**(code **)(pcVar32 + 0x1d822c))(iVar17)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d822c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d822c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d822c)" * (cast_expression "(code **)(pcVar32 + 0x1d822c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d822c)" ( (binary_expression "pcVar32 + 0x1d822c" identifier + number_literal) ))))) )) (argument_list "(iVar17)" ( identifier )))) ;) (if_statement "if (iVar19 != 0) break;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0025e7f8:\n      iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);" statement_identifier : (expression_statement "iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17);" (assignment_expression "iVar19 = (**(code **)(pcVar32 + 0x1d81c8))(iVar17)" identifier = (call_expression "(**(code **)(pcVar32 + 0x1d81c8))(iVar17)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d81c8))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d81c8)" * (pointer_expression "*(code **)(pcVar32 + 0x1d81c8)" * (cast_expression "(code **)(pcVar32 + 0x1d81c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d81c8)" ( (binary_expression "pcVar32 + 0x1d81c8" identifier + number_literal) ))))) )) (argument_list "(iVar17)" ( identifier )))) ;)) (if_statement "if (iVar19 == 0) {\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }\n      else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e80c:\n        piVar18 = (int *)*puVar25;\n      }" { (labeled_statement "LAB_0025e80c:\n        piVar18 = (int *)*puVar25;" statement_identifier : (expression_statement "piVar18 = (int *)*puVar25;" (assignment_expression "piVar18 = (int *)*puVar25" identifier = (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier))) ;)) }) (else_clause "else {\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }" else (compound_statement "{\n        uVar3 = *puVar4;\n        puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();\n        uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);\n        piVar18 = (int *)*puVar25;\n      }" { (expression_statement "uVar3 = *puVar4;" (assignment_expression "uVar3 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcVar32 + 0x1d8394))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar32 + 0x1d8394))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d8394))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d8394))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d8394)" * (pointer_expression "*(code **)(pcVar32 + 0x1d8394)" * (cast_expression "(code **)(pcVar32 + 0x1d8394)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d8394)" ( (binary_expression "pcVar32 + 0x1d8394" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9);" (assignment_expression "uVar33 = (**(code **)(pcVar32 + 0x1d8374))(*puVar9)" identifier = (call_expression "(**(code **)(pcVar32 + 0x1d8374))(*puVar9)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d8374))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d8374)" * (pointer_expression "*(code **)(pcVar32 + 0x1d8374)" * (cast_expression "(code **)(pcVar32 + 0x1d8374)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d8374)" ( (binary_expression "pcVar32 + 0x1d8374" identifier + number_literal) ))))) )) (argument_list "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33);" (call_expression "(**(code **)(pcVar32 + 0x1d3eec))(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3eec))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3eec)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3eec)" * (cast_expression "(code **)(pcVar32 + 0x1d3eec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3eec)" ( (binary_expression "pcVar32 + 0x1d3eec" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar32 + 0x1d3cfc) + 0x1338,uVar3,uVar33)" ( (binary_expression "*(int *)(pcVar32 + 0x1d3cfc) + 0x1338" (pointer_expression "*(int *)(pcVar32 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar32 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d3cfc)" ( (binary_expression "pcVar32 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "piVar18 = (int *)*puVar25;" (assignment_expression "piVar18 = (int *)*puVar25" identifier = (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier))) ;) }))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar18 + 8))(piVar18);" statement_identifier : (expression_statement "(**(code **)(*piVar18 + 8))(piVar18);" (call_expression "(**(code **)(*piVar18 + 8))(piVar18)" (parenthesized_expression "(**(code **)(*piVar18 + 8))" ( (pointer_expression "**(code **)(*piVar18 + 8)" * (pointer_expression "*(code **)(*piVar18 + 8)" * (cast_expression "(code **)(*piVar18 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar18 + 8)" ( (binary_expression "*piVar18 + 8" (pointer_expression "*piVar18" * identifier) + number_literal) ))))) )) (argument_list "(piVar18)" ( identifier ))) ;)) (expression_statement "piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc);" (assignment_expression "piVar18 = (int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc)" identifier = (cast_expression "(int *)(**(code **)(pcVar32 + 0x1d3dcc))(0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x1d3dcc))(0xc)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3dcc))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3dcc)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar32 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3dcc)" ( (binary_expression "pcVar32 + 0x1d3dcc" identifier + number_literal) ))))) )) (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "uVar3 = puVar25[2];" (assignment_expression "uVar3 = puVar25[2]" identifier = (subscript_expression "puVar25[2]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = puVar25[1];" (assignment_expression "iVar19 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar3 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 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 "piVar18[2] = (int)puVar4;" (assignment_expression "piVar18[2] = (int)puVar4" (subscript_expression "piVar18[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar18 = 0;" (assignment_expression "*piVar18 = 0" (pointer_expression "*piVar18" * identifier) = number_literal) ;) (expression_statement "piVar18[1] = uVar27;" (assignment_expression "piVar18[1] = uVar27" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = (uint *)((uVar27 % uVar3) * 4);" (assignment_expression "puVar4 = (uint *)((uVar27 % uVar3) * 4)" identifier = (cast_expression "(uint *)((uVar27 % uVar3) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar27 % uVar3) * 4)" ( (binary_expression "(uVar27 % uVar3) * 4" (parenthesized_expression "(uVar27 % uVar3)" ( (binary_expression "uVar27 % uVar3" identifier % identifier) )) * number_literal) )))) ;) (expression_statement "piVar14 = *(int **)(iVar19 + (int)puVar4);" (assignment_expression "piVar14 = *(int **)(iVar19 + (int)puVar4)" identifier = (pointer_expression "*(int **)(iVar19 + (int)puVar4)" * (cast_expression "(int **)(iVar19 + (int)puVar4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + (int)puVar4)" ( (binary_expression "iVar19 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (piVar14 == (int *)0x0) {\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }" if (parenthesized_expression "(piVar14 == (int *)0x0)" ( (binary_expression "piVar14 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0025eb6c:\n        puVar9 = puVar25 + 5;\n        (**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);\n        p_Var2 = p_Stack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }\n        if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }\n        iVar17 = *(int *)*puVar25;\n        puVar25[4] = puVar25[4] + 1;\n        (**(code **)(iVar17 + 0xc))((int *)*puVar25);\n        return;\n      }" { (labeled_statement "LAB_0025eb6c:\n        puVar9 = puVar25 + 5;" statement_identifier : (expression_statement "puVar9 = puVar25 + 5;" (assignment_expression "puVar9 = puVar25 + 5" identifier = (binary_expression "puVar25 + 5" identifier + number_literal)) ;)) (expression_statement "(**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1);" (call_expression "(**(code **)(pcVar32 + 0x1d45c0))(&puStack_d8,puVar9,uVar3,puVar25[4],1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d45c0))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d45c0)" * (pointer_expression "*(code **)(pcVar32 + 0x1d45c0)" * (cast_expression "(code **)(pcVar32 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d45c0)" ( (binary_expression "pcVar32 + 0x1d45c0" identifier + number_literal) ))))) )) (argument_list "(&puStack_d8,puVar9,uVar3,puVar25[4],1)" ( (pointer_expression "&puStack_d8" & identifier) , identifier , identifier , (subscript_expression "puVar25[4]" identifier [ number_literal ]) , number_literal ))) ;) (expression_statement "p_Var2 = p_Stack_d4;" (assignment_expression "p_Var2 = p_Stack_d4" identifier = identifier) ;) (if_statement "if (puStack_d8._0_1_ == '\0') {\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }\n        else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }" if (parenthesized_expression "(puStack_d8._0_1_ == '\0')" ( (binary_expression "puStack_d8._0_1_ == '\0'" (field_expression "puStack_d8._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pp_Var8 = (__bucket_type *)puVar25[1];\n        }" { (expression_statement "pp_Var8 = (__bucket_type *)puVar25[1];" (assignment_expression "pp_Var8 = (__bucket_type *)puVar25[1]" identifier = (cast_expression "(__bucket_type *)puVar25[1]" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }" else (compound_statement "{\n          if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }\n          p_Var12 = (_Hash_node_base *)puVar25[3];\n          puVar25[3] = 0;\n          if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }\n          if ((undefined4 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 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          puVar25[2] = p_Var2;\n          puVar25[1] = pp_Var8;\n          puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);\n        }" { (if_statement "if (p_Stack_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }\n          else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }" if (parenthesized_expression "(p_Stack_d4 ==\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_d4 ==\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_Var8 = (__bucket_type *)(puVar25 + 7);\n            puVar25[7] = 0;\n          }" { (expression_statement "pp_Var8 = (__bucket_type *)(puVar25 + 7);" (assignment_expression "pp_Var8 = (__bucket_type *)(puVar25 + 7)" identifier = (cast_expression "(__bucket_type *)(puVar25 + 7)" ( (type_descriptor "__bucket_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 7)" ( (binary_expression "puVar25 + 7" identifier + number_literal) )))) ;) (expression_statement "puVar25[7] = 0;" (assignment_expression "puVar25[7] = 0" (subscript_expression "puVar25[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }" else (compound_statement "{\n            pp_Var8 = std::__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);\n          }" { (ERROR "pp_Var8 = std::" (assignment_expression "pp_Var8 = std" identifier = identifier) : :) (labeled_statement "__detail::\n                      _Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);" statement_identifier (ERROR "::\n                      _Hashtable_alloc<std::allocator<std:" : : (binary_expression "_Hashtable_alloc<std" identifier < identifier) : : (binary_expression "allocator<std" identifier < identifier) :) : (expression_statement "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9);" (comma_expression "__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9)" identifier (ERROR "::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>" : : (binary_expression "_Hash_node<std" identifier < identifier) : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) >) , (binary_expression "_true>_>_>\n                      ::_M_allocate_buckets(p_Stack_d4,(size_t)puVar9)" (binary_expression "_true>_>_" (binary_expression "_true>_" identifier > identifier) > identifier) > (ERROR "::" : :) (call_expression "_M_allocate_buckets(p_Stack_d4,(size_t)puVar9)" identifier (argument_list "(p_Stack_d4,(size_t)puVar9)" ( identifier , (cast_expression "(size_t)puVar9" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;)) }))) (expression_statement "p_Var12 = (_Hash_node_base *)puVar25[3];" (assignment_expression "p_Var12 = (_Hash_node_base *)puVar25[3]" identifier = (cast_expression "(_Hash_node_base *)puVar25[3]" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar25[3] = 0;" (assignment_expression "puVar25[3] = 0" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (p_Var12 != (_Hash_node_base *)0x0) {\n            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }" if (parenthesized_expression "(p_Var12 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12 != (_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            uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_Hash_node_base *)0x0);\n          }" { (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\n            } while (p_Var20 != (_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              uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;\n              pp_Var16 = pp_Var8 + uVar10;\n              p_Var20 = p_Var12->_M_nxt;\n              if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }\n              p_Var12 = p_Var20;\n              uVar3 = uVar10;\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 "uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2;" (assignment_expression "uVar10 = (uint)p_Var12[1]._M_nxt % (uint)p_Var2" identifier = (binary_expression "(uint)p_Var12[1]._M_nxt % (uint)p_Var2" (cast_expression "(uint)p_Var12[1]._M_nxt" ( (type_descriptor "uint" type_identifier) ) (field_expression "p_Var12[1]._M_nxt" (subscript_expression "p_Var12[1]" identifier [ number_literal ]) . field_identifier)) % (cast_expression "(uint)p_Var2" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pp_Var16 = pp_Var8 + uVar10;" (assignment_expression "pp_Var16 = pp_Var8 + uVar10" identifier = (binary_expression "pp_Var8 + uVar10" identifier + identifier)) ;) (expression_statement "p_Var20 = p_Var12->_M_nxt;" (assignment_expression "p_Var20 = p_Var12->_M_nxt" identifier = (field_expression "p_Var12->_M_nxt" identifier -> field_identifier)) ;) (if_statement "if (*pp_Var16 == (__bucket_type)0x0) {\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }\n              else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }" if (parenthesized_expression "(*pp_Var16 == (__bucket_type)0x0)" ( (binary_expression "*pp_Var16 == (__bucket_type)0x0" (pointer_expression "*pp_Var16" * identifier) == (cast_expression "(__bucket_type)0x0" ( (type_descriptor "__bucket_type" type_identifier) ) number_literal)) )) (compound_statement "{\n                p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];\n                puVar25[3] = p_Var12;\n                *pp_Var16 = (__bucket_type)(puVar25 + 3);\n                if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }\n              }" { (expression_statement "p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3];" (assignment_expression "p_Var12->_M_nxt = (_Hash_node_base *)puVar25[3]" (field_expression "p_Var12->_M_nxt" identifier -> field_identifier) = (cast_expression "(_Hash_node_base *)puVar25[3]" ( (type_descriptor "_Hash_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar25[3] = p_Var12;" (assignment_expression "puVar25[3] = p_Var12" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pp_Var16 = (__bucket_type)(puVar25 + 3);" (assignment_expression "*pp_Var16 = (__bucket_type)(puVar25 + 3)" (pointer_expression "*pp_Var16" * identifier) = (call_expression "(__bucket_type)(puVar25 + 3)" (parenthesized_expression "(__bucket_type)" ( identifier )) (argument_list "(puVar25 + 3)" ( (binary_expression "puVar25 + 3" identifier + number_literal) )))) ;) (if_statement "if (p_Var12->_M_nxt != (_Hash_node_base *)0x0) {\n                  pp_Var8[uVar3] = p_Var12;\n                }" if (parenthesized_expression "(p_Var12->_M_nxt != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var12->_M_nxt != (_Hash_node_base *)0x0" (field_expression "p_Var12->_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_Var8[uVar3] = p_Var12;\n                }" { (expression_statement "pp_Var8[uVar3] = p_Var12;" (assignment_expression "pp_Var8[uVar3] = p_Var12" (subscript_expression "pp_Var8[uVar3]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }" else (compound_statement "{\n                p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;\n                (*pp_Var16)->_M_nxt = p_Var12;\n                uVar10 = uVar3;\n              }" { (expression_statement "p_Var12->_M_nxt = (*pp_Var16)->_M_nxt;" (assignment_expression "p_Var12->_M_nxt = (*pp_Var16)->_M_nxt" (field_expression "p_Var12->_M_nxt" identifier -> field_identifier) = (field_expression "(*pp_Var16)->_M_nxt" (parenthesized_expression "(*pp_Var16)" ( (pointer_expression "*pp_Var16" * identifier) )) -> field_identifier)) ;) (expression_statement "(*pp_Var16)->_M_nxt = p_Var12;" (assignment_expression "(*pp_Var16)->_M_nxt = p_Var12" (field_expression "(*pp_Var16)->_M_nxt" (parenthesized_expression "(*pp_Var16)" ( (pointer_expression "*pp_Var16" * identifier) )) -> field_identifier) = identifier) ;) (expression_statement "uVar10 = uVar3;" (assignment_expression "uVar10 = uVar3" identifier = identifier) ;) }))) (expression_statement "p_Var12 = p_Var20;" (assignment_expression "p_Var12 = p_Var20" identifier = identifier) ;) (expression_statement "uVar3 = uVar10;" (assignment_expression "uVar3 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(p_Var20 != (_Hash_node_base *)0x0)" ( (binary_expression "p_Var20 != (_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 *)puVar25[1] != puVar25 + 7) {\n            (**(code **)(pcVar32 + 0x1d3d1c))();\n          }" if (parenthesized_expression "((undefined4 *)puVar25[1] != puVar25 + 7)" ( (binary_expression "(undefined4 *)puVar25[1] != puVar25 + 7" (cast_expression "(undefined4 *)puVar25[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar25[1]" identifier [ number_literal ])) != (binary_expression "puVar25 + 7" identifier + number_literal)) )) (compound_statement "{\n            (**(code **)(pcVar32 + 0x1d3d1c))();\n          }" { (expression_statement "(**(code **)(pcVar32 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar32 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar32 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3d1c)" ( (binary_expression "pcVar32 + 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 "puVar25[2] = p_Var2;" (assignment_expression "puVar25[2] = p_Var2" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[1] = pp_Var8;" (assignment_expression "puVar25[1] = pp_Var8" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2);" (assignment_expression "puVar4 = (uint *)(uVar27 % (uint)p_Var2 << 2)" identifier = (cast_expression "(uint *)(uVar27 % (uint)p_Var2 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar27 % (uint)p_Var2 << 2)" ( (binary_expression "uVar27 % (uint)p_Var2 << 2" (binary_expression "uVar27 % (uint)p_Var2" identifier % (cast_expression "(uint)p_Var2" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) )))) ;) }))) (if_statement "if (*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0) {\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }\n        else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }" if (parenthesized_expression "(*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0)" ( (binary_expression "*(int **)((int)pp_Var8 + (int)puVar4) == (int *)0x0" (pointer_expression "*(int **)((int)pp_Var8 + (int)puVar4)" * (cast_expression "(int **)((int)pp_Var8 + (int)puVar4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var8 + (int)puVar4)" ( (binary_expression "(int)pp_Var8 + (int)puVar4" (cast_expression "(int)pp_Var8" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *piVar18 = puVar25[3];\n          puVar25[3] = piVar18;\n          if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }\n          *(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;\n        }" { (expression_statement "*piVar18 = puVar25[3];" (assignment_expression "*piVar18 = puVar25[3]" (pointer_expression "*piVar18" * identifier) = (subscript_expression "puVar25[3]" identifier [ number_literal ])) ;) (expression_statement "puVar25[3] = piVar18;" (assignment_expression "puVar25[3] = piVar18" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*piVar18 == 0) {\n            iVar17 = puVar25[1];\n          }\n          else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (compound_statement "{\n            iVar17 = puVar25[1];\n          }" { (expression_statement "iVar17 = puVar25[1];" (assignment_expression "iVar17 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }" else (compound_statement "{\n            iVar17 = puVar25[1];\n            if (puVar25[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;\n          }" { (expression_statement "iVar17 = puVar25[1];" (assignment_expression "iVar17 = puVar25[1]" identifier = (subscript_expression "puVar25[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar25[2] == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(puVar25[2] == 0)" ( (binary_expression "puVar25[2] == 0" (subscript_expression "puVar25[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 **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18;" (assignment_expression "*(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4) = piVar18" (pointer_expression "*(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4)" * (cast_expression "(int **)(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4)" ( (binary_expression "iVar17 + (*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4" identifier + (binary_expression "(*(uint *)(*piVar18 + 4) % (uint)puVar25[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar18 + 4) % (uint)puVar25[2])" ( (binary_expression "*(uint *)(*piVar18 + 4) % (uint)puVar25[2]" (pointer_expression "*(uint *)(*piVar18 + 4)" * (cast_expression "(uint *)(*piVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar18 + 4)" ( (binary_expression "*piVar18 + 4" (pointer_expression "*piVar18" * identifier) + number_literal) )))) % (cast_expression "(uint)puVar25[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar25[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) }))) (expression_statement "*(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3;" (assignment_expression "*(undefined4 **)(iVar17 + (int)puVar4) = puVar25 + 3" (pointer_expression "*(undefined4 **)(iVar17 + (int)puVar4)" * (cast_expression "(undefined4 **)(iVar17 + (int)puVar4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + (int)puVar4)" ( (binary_expression "iVar17 + (int)puVar4" identifier + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "puVar25 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }" else (compound_statement "{\n          *piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);\n          **(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;\n        }" { (expression_statement "*piVar18 = **(int **)((int)pp_Var8 + (int)puVar4);" (assignment_expression "*piVar18 = **(int **)((int)pp_Var8 + (int)puVar4)" (pointer_expression "*piVar18" * identifier) = (pointer_expression "**(int **)((int)pp_Var8 + (int)puVar4)" * (pointer_expression "*(int **)((int)pp_Var8 + (int)puVar4)" * (cast_expression "(int **)((int)pp_Var8 + (int)puVar4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pp_Var8 + (int)puVar4)" ( (binary_expression "(int)pp_Var8 + (int)puVar4" (cast_expression "(int)pp_Var8" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) (expression_statement "**(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18;" (assignment_expression "**(undefined4 **)(puVar25[1] + (int)puVar4) = piVar18" (pointer_expression "**(undefined4 **)(puVar25[1] + (int)puVar4)" * (pointer_expression "*(undefined4 **)(puVar25[1] + (int)puVar4)" * (cast_expression "(undefined4 **)(puVar25[1] + (int)puVar4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25[1] + (int)puVar4)" ( (binary_expression "puVar25[1] + (int)puVar4" (subscript_expression "puVar25[1]" identifier [ number_literal ]) + (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) = identifier) ;) }))) (expression_statement "iVar17 = *(int *)*puVar25;" (assignment_expression "iVar17 = *(int *)*puVar25" identifier = (pointer_expression "*(int *)*puVar25" * (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier)))) ;) (expression_statement "puVar25[4] = puVar25[4] + 1;" (assignment_expression "puVar25[4] = puVar25[4] + 1" (subscript_expression "puVar25[4]" identifier [ number_literal ]) = (binary_expression "puVar25[4] + 1" (subscript_expression "puVar25[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(**(code **)(iVar17 + 0xc))((int *)*puVar25);" (call_expression "(**(code **)(iVar17 + 0xc))((int *)*puVar25)" (parenthesized_expression "(**(code **)(iVar17 + 0xc))" ( (pointer_expression "**(code **)(iVar17 + 0xc)" * (pointer_expression "*(code **)(iVar17 + 0xc)" * (cast_expression "(code **)(iVar17 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) ))))) )) (argument_list "((int *)*puVar25)" ( (cast_expression "(int *)*puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar25" * identifier)) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar10 = ((int *)*piVar14)[1];" (assignment_expression "uVar10 = ((int *)*piVar14)[1]" identifier = (subscript_expression "((int *)*piVar14)[1]" (parenthesized_expression "((int *)*piVar14)" ( (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar11 = (int *)*piVar14;" (assignment_expression "piVar11 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;) (while_statement "while (piVar15 = piVar11, uVar27 != uVar10) {\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }" while (parenthesized_expression "(piVar15 = piVar11, uVar27 != uVar10)" ( (comma_expression "piVar15 = piVar11, uVar27 != uVar10" (assignment_expression "piVar15 = piVar11" identifier = identifier) , (binary_expression "uVar27 != uVar10" identifier != identifier)) )) (compound_statement "{\n        piVar11 = (int *)*piVar15;\n        if (piVar11 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar11[1];\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        piVar14 = piVar15;\n        if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;\n      }" { (expression_statement "piVar11 = (int *)*piVar15;" (assignment_expression "piVar11 = (int *)*piVar15" identifier = (cast_expression "(int *)*piVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar15" * identifier))) ;) (if_statement "if (piVar11 == (int *)0x0) goto LAB_0025eb6c;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (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 "uVar10 = piVar11[1];" (assignment_expression "uVar10 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar3 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 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 "piVar14 = piVar15;" (assignment_expression "piVar14 = piVar15" identifier = identifier) ;) (if_statement "if (uVar27 % uVar3 != uVar10 % uVar3) goto LAB_0025eb6c;" if (parenthesized_expression "(uVar27 % uVar3 != uVar10 % uVar3)" ( (binary_expression "uVar27 % uVar3 != uVar10 % uVar3" (binary_expression "uVar27 % uVar3" identifier % identifier) != (binary_expression "uVar10 % uVar3" identifier % identifier)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) })) (if_statement "if (*piVar14 == 0) goto LAB_0025eb6c;" if (parenthesized_expression "(*piVar14 == 0)" ( (binary_expression "*piVar14 == 0" (pointer_expression "*piVar14" * identifier) == number_literal) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar32 + 0x1d3d1c))(piVar18);" (call_expression "(**(code **)(pcVar32 + 0x1d3d1c))(piVar18)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar32 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3d1c)" ( (binary_expression "pcVar32 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "(piVar18)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394);" (call_expression "(**(code **)(pcVar32 + 0x1d3e54))\n                (*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394)" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3e54))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3e54)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3e54)" * (cast_expression "(code **)(pcVar32 + 0x1d3e54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3e54)" ( (binary_expression "pcVar32 + 0x1d3e54" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar32 + 0x1d3cfc) + 0x1394)" ( (binary_expression "*(int *)(pcVar32 + 0x1d3cfc) + 0x12f0" (pointer_expression "*(int *)(pcVar32 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar32 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d3cfc)" ( (binary_expression "pcVar32 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar32 + 0x1d3cfc) + 0x1394" (pointer_expression "*(int *)(pcVar32 + 0x1d3cfc)" * (cast_expression "(int *)(pcVar32 + 0x1d3cfc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x1d3cfc)" ( (binary_expression "pcVar32 + 0x1d3cfc" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0025e8e0:\n      pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);" statement_identifier : (expression_statement "pcVar31 = *(code **)(pcVar32 + 0x1d3dcc);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x1d3dcc)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x1d3dcc)" * (cast_expression "(code **)(pcVar32 + 0x1d3dcc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3dcc)" ( (binary_expression "pcVar32 + 0x1d3dcc" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0025e8e4:\n      puVar5 = (uint *)(*pcVar31)(0x20);" statement_identifier : (expression_statement "puVar5 = (uint *)(*pcVar31)(0x20);" (assignment_expression "puVar5 = (uint *)(*pcVar31)(0x20)" identifier = (cast_expression "(uint *)(*pcVar31)(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar31)(0x20)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(0x20)" ( number_literal ))))) ;)) (expression_statement "p_Var2 = p_Stack_d4;" (assignment_expression "p_Var2 = p_Stack_d4" identifier = identifier) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "puVar5[1] = (uint)(puVar5 + 3);" (assignment_expression "puVar5[1] = (uint)(puVar5 + 3)" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (call_expression "(uint)(puVar5 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar5 + 3)" ( (binary_expression "puVar5 + 3" identifier + number_literal) )))) ;) (if_statement "if (puStack_d8 == puVar29) {\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }\n      else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }" if (parenthesized_expression "(puStack_d8 == puVar29)" ( (binary_expression "puStack_d8 == puVar29" identifier == identifier) )) (compound_statement "{\n        puVar5[3] = uStack_d0;\n        puVar5[4] = uStack_cc;\n        puVar5[5] = uStack_c8;\n        puVar5[6] = uStack_c4;\n      }" { (expression_statement "puVar5[3] = uStack_d0;" (assignment_expression "puVar5[3] = uStack_d0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[4] = uStack_cc;" (assignment_expression "puVar5[4] = uStack_cc" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = uStack_c8;" (assignment_expression "puVar5[5] = uStack_c8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[6] = uStack_c4;" (assignment_expression "puVar5[6] = uStack_c4" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }" else (compound_statement "{\n        puVar5[1] = (uint)puStack_d8;\n        puVar5[3] = uStack_d0;\n      }" { (expression_statement "puVar5[1] = (uint)puStack_d8;" (assignment_expression "puVar5[1] = (uint)puStack_d8" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar5[3] = uStack_d0;" (assignment_expression "puVar5[3] = uStack_d0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uStack_ac = puVar4[6];" (assignment_expression "uStack_ac = puVar4[6]" identifier = (subscript_expression "puVar4[6]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar4[4];" (assignment_expression "uVar10 = puVar4[4]" identifier = (subscript_expression "puVar4[4]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = puVar4[2];" (assignment_expression "uVar3 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar31 = *(code **)(pcVar32 + 0x1d45c0);" (assignment_expression "pcVar31 = *(code **)(pcVar32 + 0x1d45c0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x1d45c0)" * (cast_expression "(code **)(pcVar32 + 0x1d45c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d45c0)" ( (binary_expression "pcVar32 + 0x1d45c0" identifier + number_literal) ))))) ;) (expression_statement "p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29;" (assignment_expression "p_Stack_d4 = (_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>,_true>_>_>\n                    *)0x0;\n      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29" 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      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar29" ( (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      puVar5[2] = (uint)p_Var2;\n      uStack_d0 = uStack_d0 & 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 "puVar5[2] = (uint)p_Var2" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = (cast_expression "(uint)p_Var2" ( (type_descriptor "uint" type_identifier) ) identifier)) ; (assignment_expression "uStack_d0 = uStack_d0 & 0xffffff" identifier = (binary_expression "uStack_d0 & 0xffffff" identifier & number_literal)) ;) (assignment_expression "puStack_d8 = puVar29" identifier = identifier) ))) ;) (expression_statement "(*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1);" (call_expression "(*pcVar31)(acStack_c0,puVar4 + 5,uVar3,uVar10,1)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(acStack_c0,puVar4 + 5,uVar3,uVar10,1)" ( identifier , (binary_expression "puVar4 + 5" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "uVar3 = uStack_bc;" (assignment_expression "uVar3 = uStack_bc" identifier = identifier) ;) (if_statement "if (acStack_c0[0] == '\0') {\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }" if (parenthesized_expression "(acStack_c0[0] == '\0')" ( (binary_expression "acStack_c0[0] == '\0'" (subscript_expression "acStack_c0[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar6 = (uint *)puVar4[1];\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (int)puVar26;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar3 = puVar4[3];\n        puVar4[3] = (uint)puVar5;\n        *puVar5 = uVar3;\n        if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }\n        *puVar26 = (uint)puStack_b8;\n      }" { (expression_statement "puVar6 = (uint *)puVar4[1];" (assignment_expression "puVar6 = (uint *)puVar4[1]" identifier = (cast_expression "(uint *)puVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar5[7] = (uint)unaff_s5;" (assignment_expression "puVar5[7] = (uint)unaff_s5" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar26 = puVar6 + (int)puVar26;" (assignment_expression "puVar26 = puVar6 + (int)puVar26" identifier = (binary_expression "puVar6 + (int)puVar26" identifier + (cast_expression "(int)puVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar7 = (uint *)*puVar26;" (assignment_expression "puVar7 = (uint *)*puVar26" identifier = (cast_expression "(uint *)*puVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar26" * identifier))) ;) (if_statement "if (puVar7 != (uint *)0x0) goto LAB_0025ea48;" if (parenthesized_expression "(puVar7 != (uint *)0x0)" ( (binary_expression "puVar7 != (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        uVar3 = puVar4[3];" statement_identifier : (expression_statement "uVar3 = puVar4[3];" (assignment_expression "uVar3 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;)) (expression_statement "puVar4[3] = (uint)puVar5;" (assignment_expression "puVar4[3] = (uint)puVar5" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar5 = uVar3;" (assignment_expression "*puVar5 = uVar3" (pointer_expression "*puVar5" * identifier) = identifier) ;) (if_statement "if (uVar3 != 0) {\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          if (puVar4[2] == 0) {\n            trap(7);\n          }\n          puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;\n        }" { (if_statement "if (puVar4[2] == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(puVar4[2] == 0)" ( (binary_expression "puVar4[2] == 0" (subscript_expression "puVar4[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 "puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5;" (assignment_expression "puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]] = (uint)puVar5" (subscript_expression "puVar6[*(uint *)(uVar3 + 0x1c) % puVar4[2]]" identifier [ (binary_expression "*(uint *)(uVar3 + 0x1c) % puVar4[2]" (pointer_expression "*(uint *)(uVar3 + 0x1c)" * (cast_expression "(uint *)(uVar3 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar3 + 0x1c)" ( (binary_expression "uVar3 + 0x1c" identifier + number_literal) )))) % (subscript_expression "puVar4[2]" identifier [ number_literal ])) ]) = (cast_expression "(uint)puVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*puVar26 = (uint)puStack_b8;" (assignment_expression "*puVar26 = (uint)puStack_b8" (pointer_expression "*puVar26" * identifier) = (cast_expression "(uint)puStack_b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }" else (compound_statement "{\n        if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar26 = (uint *)puVar4[3];\n        puVar4[3] = 0;\n        if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }\n        if (uVar3 == 0) {\n          trap(7);\n        }\n        puVar4[2] = uVar3;\n        puVar4[1] = (uint)puVar6;\n        puVar5[7] = (uint)unaff_s5;\n        puVar26 = puVar6 + (uint)unaff_s5 % uVar3;\n        puVar7 = (uint *)*puVar26;\n        if (puVar7 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar5 = *puVar7;\n        *(uint **)*puVar26 = puVar5;\n      }" { (if_statement "if (uStack_bc == 1) {\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }\n        else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" if (parenthesized_expression "(uStack_bc == 1)" ( (binary_expression "uStack_bc == 1" identifier == number_literal) )) (compound_statement "{\n          puVar4[7] = 0;\n          puVar6 = puStack_b4;\n        }" { (expression_statement "puVar4[7] = 0;" (assignment_expression "puVar4[7] = 0" (subscript_expression "puVar4[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6 = puStack_b4;" (assignment_expression "puVar6 = puStack_b4" identifier = identifier) ;) }) (else_clause "else {\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" else (compound_statement "{\n          puVar6 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" { (expression_statement "puVar6 = (uint *)(*pcStack_b0)(uStack_bc);" (assignment_expression "puVar6 = (uint *)(*pcStack_b0)(uStack_bc)" identifier = (cast_expression "(uint *)(*pcStack_b0)(uStack_bc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_b0)(uStack_bc)" (parenthesized_expression "(*pcStack_b0)" ( (pointer_expression "*pcStack_b0" * identifier) )) (argument_list "(uStack_bc)" ( identifier ))))) ;) }))) (expression_statement "puVar26 = (uint *)puVar4[3];" (assignment_expression "puVar26 = (uint *)puVar4[3]" identifier = (cast_expression "(uint *)puVar4[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar4[3] = 0;" (assignment_expression "puVar4[3] = 0" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar26 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }" 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)) )) (compound_statement "{\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          } while (puVar22 != (uint *)0x0);" do (compound_statement "{\n            while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar26 = puVar4[3];\n            puVar4[3] = (uint)puVar26;\n            *puVar7 = (uint)puStack_b8;\n            if (*puVar26 == 0) goto LAB_0025e9a0;\n            puVar6[uVar10] = (uint)puVar26;\n            puVar26 = puVar22;\n            uVar10 = uVar34;\n          }" { (while_statement "while( true ) {\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar3 == 0) {\n                trap(7);\n              }\n              uVar34 = puVar26[7] % uVar3;\n              puVar7 = puVar6 + uVar34;\n              puVar22 = (uint *)*puVar26;\n              if ((uint *)*puVar7 == (uint *)0x0) break;\n              *puVar26 = *(uint *)*puVar7;\n              *(uint **)*puVar7 = puVar26;\n              uVar34 = uVar10;\nLAB_0025e9a0:\n              puVar26 = puVar22;\n              uVar10 = uVar34;\n              if (puVar22 == (uint *)0x0) goto LAB_0025ea00;\n            }" { (if_statement "if (uVar3 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 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 "uVar34 = puVar26[7] % uVar3;" (assignment_expression "uVar34 = puVar26[7] % uVar3" identifier = (binary_expression "puVar26[7] % uVar3" (subscript_expression "puVar26[7]" identifier [ number_literal ]) % identifier)) ;) (expression_statement "puVar7 = puVar6 + uVar34;" (assignment_expression "puVar7 = puVar6 + uVar34" identifier = (binary_expression "puVar6 + uVar34" identifier + identifier)) ;) (expression_statement "puVar22 = (uint *)*puVar26;" (assignment_expression "puVar22 = (uint *)*puVar26" identifier = (cast_expression "(uint *)*puVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar26" * identifier))) ;) (if_statement "if ((uint *)*puVar7 == (uint *)0x0) break;" if (parenthesized_expression "((uint *)*puVar7 == (uint *)0x0)" ( (binary_expression "(uint *)*puVar7 == (uint *)0x0" (cast_expression "(uint *)*puVar7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar26 = *(uint *)*puVar7;" (assignment_expression "*puVar26 = *(uint *)*puVar7" (pointer_expression "*puVar26" * identifier) = (pointer_expression "*(uint *)*puVar7" * (cast_expression "(uint *)*puVar7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "*(uint **)*puVar7 = puVar26;" (assignment_expression "*(uint **)*puVar7 = puVar26" (pointer_expression "*(uint **)*puVar7" * (cast_expression "(uint **)*puVar7" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar7" * identifier))) = identifier) ;) (expression_statement "uVar34 = uVar10;" (assignment_expression "uVar34 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_0025e9a0:\n              puVar26 = puVar22;" statement_identifier : (expression_statement "puVar26 = puVar22;" (assignment_expression "puVar26 = puVar22" identifier = identifier) ;)) (expression_statement "uVar10 = uVar34;" (assignment_expression "uVar10 = uVar34" identifier = identifier) ;) (if_statement "if (puVar22 == (uint *)0x0) goto LAB_0025ea00;" 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)) )) (goto_statement "goto LAB_0025ea00;" goto statement_identifier ;)) })) (expression_statement "*puVar26 = puVar4[3];" (assignment_expression "*puVar26 = puVar4[3]" (pointer_expression "*puVar26" * identifier) = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4[3] = (uint)puVar26;" (assignment_expression "puVar4[3] = (uint)puVar26" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar7 = (uint)puStack_b8;" (assignment_expression "*puVar7 = (uint)puStack_b8" (pointer_expression "*puVar7" * identifier) = (cast_expression "(uint)puStack_b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*puVar26 == 0) goto LAB_0025e9a0;" if (parenthesized_expression "(*puVar26 == 0)" ( (binary_expression "*puVar26 == 0" (pointer_expression "*puVar26" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e9a0;" goto statement_identifier ;)) (expression_statement "puVar6[uVar10] = (uint)puVar26;" (assignment_expression "puVar6[uVar10] = (uint)puVar26" (subscript_expression "puVar6[uVar10]" identifier [ identifier ]) = (cast_expression "(uint)puVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar26 = puVar22;" (assignment_expression "puVar26 = puVar22" identifier = identifier) ;) (expression_statement "uVar10 = uVar34;" (assignment_expression "uVar10 = uVar34" identifier = identifier) ;) }) while (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)) )) ;) })) (labeled_statement "LAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }" statement_identifier : (if_statement "if (puStack_b4 != (uint *)puVar4[1]) {\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }" if (parenthesized_expression "(puStack_b4 != (uint *)puVar4[1])" ( (binary_expression "puStack_b4 != (uint *)puVar4[1]" identifier != (cast_expression "(uint *)puVar4[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) )) (compound_statement "{\n          (**(code **)(pcVar32 + 0x1d3d1c))();\n        }" { (expression_statement "(**(code **)(pcVar32 + 0x1d3d1c))();" (call_expression "(**(code **)(pcVar32 + 0x1d3d1c))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x1d3d1c))" ( (pointer_expression "**(code **)(pcVar32 + 0x1d3d1c)" * (pointer_expression "*(code **)(pcVar32 + 0x1d3d1c)" * (cast_expression "(code **)(pcVar32 + 0x1d3d1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x1d3d1c)" ( (binary_expression "pcVar32 + 0x1d3d1c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (if_statement "if (uVar3 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 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 "puVar4[2] = uVar3;" (assignment_expression "puVar4[2] = uVar3" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[1] = (uint)puVar6;" (assignment_expression "puVar4[1] = (uint)puVar6" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar5[7] = (uint)unaff_s5;" (assignment_expression "puVar5[7] = (uint)unaff_s5" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar26 = puVar6 + (uint)unaff_s5 % uVar3;" (assignment_expression "puVar26 = puVar6 + (uint)unaff_s5 % uVar3" identifier = (binary_expression "puVar6 + (uint)unaff_s5 % uVar3" identifier + (binary_expression "(uint)unaff_s5 % uVar3" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "puVar7 = (uint *)*puVar26;" (assignment_expression "puVar7 = (uint *)*puVar26" identifier = (cast_expression "(uint *)*puVar26" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar26" * identifier))) ;) (if_statement "if (puVar7 == (uint *)0x0) goto LAB_0025ea84;" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (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        *puVar5 = *puVar7;" statement_identifier : (expression_statement "*puVar5 = *puVar7;" (assignment_expression "*puVar5 = *puVar7" (pointer_expression "*puVar5" * identifier) = (pointer_expression "*puVar7" * identifier)) ;)) (expression_statement "*(uint **)*puVar26 = puVar5;" (assignment_expression "*(uint **)*puVar26 = puVar5" (pointer_expression "*(uint **)*puVar26" * (cast_expression "(uint **)*puVar26" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar26" * identifier))) = identifier) ;) }))) (expression_statement "puVar4[4] = puVar4[4] + 1;" (assignment_expression "puVar4[4] = puVar4[4] + 1" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = (binary_expression "puVar4[4] + 1" (subscript_expression "puVar4[4]" identifier [ number_literal ]) + number_literal)) ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "int * FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    \n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}\n\n" (function_definition "int * FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    \n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)" * (function_declarator "FUN_0025e214(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  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    \n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "Task *pTVar3;" type_identifier (pointer_declarator "*pTVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *piVar18;" primitive_type (pointer_declarator "*piVar18" * identifier) ;) (declaration "int unaff_s1;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "Workqueue *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "uint *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "uint *puStack_d8;" type_identifier (pointer_declarator "*puStack_d8" * identifier) ;) (declaration "uint uStack_d4;" type_identifier identifier ;) (declaration "uint uStack_d0;" type_identifier identifier ;) (declaration "uint uStack_cc;" type_identifier identifier ;) (declaration "uint uStack_c8;" type_identifier identifier ;) (declaration "uint uStack_c4;" type_identifier identifier ;) (declaration "char acStack_c0 [4];" primitive_type (array_declarator "acStack_c0 [4]" identifier [ number_literal ]) ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "uint *puStack_b8;" type_identifier (pointer_declarator "*puStack_b8" * identifier) ;) (declaration "uint *puStack_b4;" type_identifier (pointer_declarator "*puStack_b4" * identifier) ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "uint uStack_ac;" type_identifier identifier ;) (declaration "int iStack_a8;" primitive_type identifier ;) (declaration "undefined1 *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "undefined1 **ppuStack_a0;" type_identifier (pointer_declarator "**ppuStack_a0" * (pointer_declarator "*ppuStack_a0" * identifier)) ;) (declaration "uint *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "Workqueue *pWStack_98;" type_identifier (pointer_declarator "*pWStack_98" * identifier) ;) (declaration "int *piStack_94;" primitive_type (pointer_declarator "*piStack_94" * identifier) ;) (declaration "undefined *puStack_90;" type_identifier (pointer_declarator "*puStack_90" * identifier) ;) (declaration "undefined1 *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "undefined1 auStack_60 [20];" type_identifier (array_declarator "auStack_60 [20]" identifier [ number_literal ]) ;) (declaration "int *piStack_4c;" primitive_type (pointer_declarator "*piStack_4c" * identifier) ;) (declaration "int iStack_48;" primitive_type identifier ;) (declaration "int *piStack_44;" primitive_type (pointer_declarator "*piStack_44" * identifier) ;) (declaration "int *piStack_40;" primitive_type (pointer_declarator "*piStack_40" * identifier) ;) (declaration "code *pcStack_3c;" type_identifier (pointer_declarator "*pcStack_3c" * identifier) ;) (expression_statement "puVar24 = (uint *)PTR__environ_00433318;" (assignment_expression "puVar24 = (uint *)PTR__environ_00433318" identifier = (cast_expression "(uint *)PTR__environ_00433318" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" if (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x2830) == 0)" ( (binary_expression "*(int *)(PTR__environ_00433318 + -0x2830) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x2830)" * (cast_expression "(int *)(PTR__environ_00433318 + -0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__environ_00433318 + -0x2830)" ( (binary_expression "PTR__environ_00433318 + -0x2830" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }" { (expression_statement "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);" (assignment_expression "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20)" identifier = (call_expression "(*(code *)PTR_operator_new_0043233c)(0x20)" (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 "(0x20)" ( number_literal )))) ;) (expression_statement "(*(code *)PTR_Lock_00434030)(unaff_s1);" (call_expression "(*(code *)PTR_Lock_00434030)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_Lock_00434030)" ( (pointer_expression "*(code *)PTR_Lock_00434030" * (cast_expression "(code *)PTR_Lock_00434030" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "puVar23 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar23 = PTR_s_alize_xindex_004323b4" identifier = identifier) ;) (expression_statement "piVar18 = (int *)*param_3;" (assignment_expression "piVar18 = (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 "piVar11 = (int *)param_3[1];" (assignment_expression "piVar11 = (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 "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(int *)(unaff_s1 + 4)" * (cast_expression "(int *)(unaff_s1 + 4)" ( (type_descriptor "int *" primitive_type (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 "uVar27 = *(undefined4 *)(puVar23 + -0x636c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar23 + -0x636c)" identifier = (pointer_expression "*(undefined4 *)(puVar23 + -0x636c)" * (cast_expression "(undefined4 *)(puVar23 + -0x636c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + -0x636c)" ( (binary_expression "puVar23 + -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 "*(int *)((int)puVar24 + -0x2830) = unaff_s1;" (assignment_expression "*(int *)((int)puVar24 + -0x2830) = unaff_s1" (pointer_expression "*(int *)((int)puVar24 + -0x2830)" * (cast_expression "(int *)((int)puVar24 + -0x2830)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar24 + -0x2830)" ( (binary_expression "(int)puVar24 + -0x2830" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) 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) = uVar27;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar27" (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) ;) (if_statement "if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\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 "piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);" (assignment_expression "piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" identifier = (cast_expression "(int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" ( (binary_expression "param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249" (subscript_expression "param_1[2]" identifier [ number_literal ]) + (binary_expression "((int)piVar11 - (int)piVar18 >> 2) * -0x49249249" (parenthesized_expression "((int)piVar11 - (int)piVar18 >> 2)" ( (binary_expression "(int)piVar11 - (int)piVar18 >> 2" (binary_expression "(int)piVar11 - (int)piVar18" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar18" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )) * number_literal)) )))) ;) (expression_statement "param_1[2] = (int)piVar2;" (assignment_expression "param_1[2] = (int)piVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }" if (parenthesized_expression "(piVar18 != piVar11)" ( (binary_expression "piVar18 != piVar11" identifier != identifier) )) (compound_statement "{\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }" { (expression_statement "puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;" (assignment_expression "puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48" identifier = (binary_expression "PTR_PTR__wfilebuf_004321f8 + -0x6d48" identifier + number_literal)) ;) (do_statement "do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);" do (compound_statement "{\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        }" { (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" identifier = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar18 = piVar18 + 7;" (assignment_expression "piVar18 = piVar18 + 7" identifier = (binary_expression "piVar18 + 7" identifier + number_literal)) ;) (expression_statement "pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);" (assignment_expression "pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" identifier = (cast_expression "(Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_operator_new_0043233c)(0x2c)" (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 "(0x2c)" ( number_literal ))))) ;) (expression_statement "*(undefined4 *)(pTVar3 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar3 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar3 + 4)" * (cast_expression "(undefined4 *)(pTVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar3 + 4)" ( (binary_expression "pTVar3 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(Task **)(pTVar3 + 8) = pTVar3 + 0x10;" (assignment_expression "*(Task **)(pTVar3 + 8) = pTVar3 + 0x10" (pointer_expression "*(Task **)(pTVar3 + 8)" * (cast_expression "(Task **)(pTVar3 + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar3 + 8)" ( (binary_expression "pTVar3 + 8" identifier + number_literal) )))) = (binary_expression "pTVar3 + 0x10" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(pTVar3 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(pTVar3 + 0xc) = 0" (pointer_expression "*(undefined4 *)(pTVar3 + 0xc)" * (cast_expression "(undefined4 *)(pTVar3 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar3 + 0xc)" ( (binary_expression "pTVar3 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pTVar3[0x10] = (Task)0x0;" (assignment_expression "pTVar3[0x10] = (Task)0x0" (subscript_expression "pTVar3[0x10]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "pTVar3[0x20] = (Task)0x0;" (assignment_expression "pTVar3[0x20] = (Task)0x0" (subscript_expression "pTVar3[0x20]" identifier [ number_literal ]) = (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ;) (expression_statement "*(undefined **)pTVar3 = puVar23;" (assignment_expression "*(undefined **)pTVar3 = puVar23" (pointer_expression "*(undefined **)pTVar3" * (cast_expression "(undefined **)pTVar3" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)(pTVar3 + 0x24) = iVar19;" (assignment_expression "*(int *)(pTVar3 + 0x24) = iVar19" (pointer_expression "*(int *)(pTVar3 + 0x24)" * (cast_expression "(int *)(pTVar3 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar3 + 0x24)" ( (binary_expression "pTVar3 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(pTVar3 + 0x28) = unaff_s3;" (assignment_expression "*(int **)(pTVar3 + 0x28) = unaff_s3" (pointer_expression "*(int **)(pTVar3 + 0x28)" * (cast_expression "(int **)(pTVar3 + 0x28)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pTVar3 + 0x28)" ( (binary_expression "pTVar3 + 0x28" identifier + number_literal) )))) = identifier) ;) (labeled_statement "gold::Workqueue::queue(param_2,pTVar3);" statement_identifier : (ERROR ":" :) (labeled_statement "Workqueue::queue(param_2,pTVar3);" statement_identifier : (ERROR ":" :) (expression_statement "queue(param_2,pTVar3);" (call_expression "queue(param_2,pTVar3)" identifier (argument_list "(param_2,pTVar3)" ( identifier , identifier ))) ;))) (expression_statement "piVar2 = (int *)param_3[1];" (assignment_expression "piVar2 = (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 "(piVar2 != piVar18)" ( (binary_expression "piVar2 != piVar18" identifier != identifier) )) ;) })) (return_statement "return piVar2;" return identifier ;) })) }) (else_clause "else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" else (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" { (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8)" ( (binary_expression "PTR_DAT_0043226c + 0x12f0" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_0043226c + 0x13a8" identifier + number_literal) ))) ;) }))) (expression_statement "piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);" (assignment_expression "piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0)" identifier = (cast_expression "(int *)(PTR_LAB_0043220c + 0x48a0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0043220c + 0x48a0)" ( (binary_expression "PTR_LAB_0043220c + 0x48a0" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" * (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar18,0x97,PTR_DAT_0043226c + 0x1398)" ( identifier , number_literal , (binary_expression "PTR_DAT_0043226c + 0x1398" identifier + number_literal) ))) ;) (expression_statement "iVar19 = 0x20;" (assignment_expression "iVar19 = 0x20" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_operator_delete_004323c0)(unaff_s1);" (call_expression "(*(code *)PTR_operator_delete_004323c0)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004323c0)" ( (pointer_expression "*(code *)PTR_operator_delete_004323c0" * (cast_expression "(code *)PTR_operator_delete_004323c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "pcVar26 = FUN_0025e3dc;" (assignment_expression "pcVar26 = FUN_0025e3dc" identifier = identifier) ;) (expression_statement "piVar11 = piVar18;" (assignment_expression "piVar11 = piVar18" identifier = identifier) ;) (expression_statement "puVar23 = PTR_FUN_00432258;" (assignment_expression "puVar23 = PTR_FUN_00432258" identifier = identifier) ;) (expression_statement "(*(code *)PTR_FUN_00432258)();" (call_expression "(*(code *)PTR_FUN_00432258)()" (parenthesized_expression "(*(code *)PTR_FUN_00432258)" ( (pointer_expression "*(code *)PTR_FUN_00432258" * (cast_expression "(code *)PTR_FUN_00432258" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_68 = auStack_60;" (assignment_expression "puStack_68 = auStack_60" identifier = identifier) ;) (expression_statement "piStack_4c = piVar18;" (assignment_expression "piStack_4c = piVar18" identifier = identifier) ;) (expression_statement "iStack_48 = unaff_s1;" (assignment_expression "iStack_48 = unaff_s1" identifier = identifier) ;) (expression_statement "piStack_44 = unaff_s2;" (assignment_expression "piStack_44 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_40 = unaff_s3;" (assignment_expression "piStack_40 = unaff_s3" identifier = identifier) ;) (expression_statement "pcStack_3c = pcVar26;" (assignment_expression "pcStack_3c = pcVar26" identifier = identifier) ;) (expression_statement "(**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d40ac))" ( (pointer_expression "**(code **)(puVar23 + 0x1d40ac)" * (pointer_expression "*(code **)(puVar23 + 0x1d40ac)" * (cast_expression "(code **)(puVar23 + 0x1d40ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d40ac)" ( (binary_expression "puVar23 + 0x1d40ac" identifier + number_literal) ))))) )) (argument_list "(&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0)" ( (pointer_expression "&puStack_68" & identifier) , (binary_expression "*(int *)(puVar23 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(puVar23 + 0x1d3e90)" * (cast_expression "(int *)(puVar23 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d3e90)" ( (binary_expression "puVar23 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar23 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(puVar23 + 0x1d3e90)" * (cast_expression "(int *)(puVar23 + 0x1d3e90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d3e90)" ( (binary_expression "puVar23 + 0x1d3e90" identifier + number_literal) )))) + number_literal) , number_literal ))) ;) (expression_statement "puVar21 = *(uint **)(iVar19 + 0x24);" (assignment_expression "puVar21 = *(uint **)(iVar19 + 0x24)" identifier = (pointer_expression "*(uint **)(iVar19 + 0x24)" * (cast_expression "(uint **)(iVar19 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0x24)" ( (binary_expression "iVar19 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);" (assignment_expression "uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21)" identifier = (call_expression "(**(code **)(puVar23 + 0x1d83a0))(puVar21)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d83a0))" ( (pointer_expression "**(code **)(puVar23 + 0x1d83a0)" * (pointer_expression "*(code **)(puVar23 + 0x1d83a0)" * (cast_expression "(code **)(puVar23 + 0x1d83a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d83a0)" ( (binary_expression "puVar23 + 0x1d83a0" identifier + number_literal) ))))) )) (argument_list "(puVar21)" ( identifier )))) ;) (if_statement "if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }" if (parenthesized_expression "(uVar4 <= 0x7fffffffU - iStack_64)" ( (binary_expression "uVar4 <= 0x7fffffffU - iStack_64" identifier <= (binary_expression "0x7fffffffU - iStack_64" number_literal - identifier)) )) (compound_statement "{\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }" { (expression_statement "piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);" (assignment_expression "piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" identifier = (cast_expression "(int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d4874))" ( (pointer_expression "**(code **)(puVar23 + 0x1d4874)" * (pointer_expression "*(code **)(puVar23 + 0x1d4874)" * (cast_expression "(code **)(puVar23 + 0x1d4874)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d4874)" ( (binary_expression "puVar23 + 0x1d4874" identifier + number_literal) ))))) )) (argument_list "(&puStack_68,puVar21,uVar4)" ( (pointer_expression "&puStack_68" & identifier) , identifier , identifier ))))) ;) (expression_statement "piVar2 = piVar18 + 2;" (assignment_expression "piVar2 = piVar18 + 2" identifier = (binary_expression "piVar18 + 2" identifier + number_literal)) ;) (expression_statement "*piVar11 = (int)(piVar11 + 2);" (assignment_expression "*piVar11 = (int)(piVar11 + 2)" (pointer_expression "*piVar11" * identifier) = (cast_expression "(int)(piVar11 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar11 + 2)" ( (binary_expression "piVar11 + 2" identifier + number_literal) )))) ;) (if_statement "if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" if (parenthesized_expression "((int *)*piVar18 == piVar2)" ( (binary_expression "(int *)*piVar18 == piVar2" (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier)) == identifier) )) (compound_statement "{\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }" { (expression_statement "iVar15 = piVar18[3];" (assignment_expression "iVar15 = piVar18[3]" identifier = (subscript_expression "piVar18[3]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = piVar18[4];" (assignment_expression "iVar14 = piVar18[4]" identifier = (subscript_expression "piVar18[4]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = piVar18[5];" (assignment_expression "iVar19 = piVar18[5]" identifier = (subscript_expression "piVar18[5]" identifier [ number_literal ])) ;) (expression_statement "piVar11[2] = *piVar2;" (assignment_expression "piVar11[2] = *piVar2" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar11[3] = iVar15;" (assignment_expression "piVar11[3] = iVar15" (subscript_expression "piVar11[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[4] = iVar14;" (assignment_expression "piVar11[4] = iVar14" (subscript_expression "piVar11[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar11[5] = iVar19;" (assignment_expression "piVar11[5] = iVar19" (subscript_expression "piVar11[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" else (compound_statement "{\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" { (expression_statement "*piVar11 = *piVar18;" (assignment_expression "*piVar11 = *piVar18" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar18" * identifier)) ;) (expression_statement "piVar11[2] = piVar18[2];" (assignment_expression "piVar11[2] = piVar18[2]" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (subscript_expression "piVar18[2]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar11[1] = piVar18[1];" (assignment_expression "piVar11[1] = piVar18[1]" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = (subscript_expression "piVar18[1]" identifier [ number_literal ])) ;) (expression_statement "*piVar18 = (int)piVar2;" (assignment_expression "*piVar18 = (int)piVar2" (pointer_expression "*piVar18" * identifier) = (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar18[1] = 0;" (assignment_expression "piVar18[1] = 0" (subscript_expression "piVar18[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar18 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar18 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar18 + 2)" * (cast_expression "(undefined1 *)(piVar18 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar18 + 2)" ( (binary_expression "piVar18 + 2" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }" if (parenthesized_expression "(puStack_68 != auStack_60)" ( (binary_expression "puStack_68 != auStack_60" identifier != identifier) )) (compound_statement "{\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }" { (expression_statement "(**(code **)(puVar23 + 0x1d3eb0))();" (call_expression "(**(code **)(puVar23 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1d3eb0))" ( (pointer_expression "**(code **)(puVar23 + 0x1d3eb0)" * (pointer_expression "*(code **)(puVar23 + 0x1d3eb0)" * (cast_expression "(code **)(puVar23 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d3eb0)" ( (binary_expression "puVar23 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (return_statement "return piVar11;" return identifier ;) })) (expression_statement "iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240" identifier = (binary_expression "*(int *)(puVar23 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(puVar23 + 0x1d3fd8)" * (cast_expression "(int *)(puVar23 + 0x1d3fd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar23 + 0x1d3fd8)" ( (binary_expression "puVar23 + 0x1d3fd8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(puVar23 + 0x1d40a4))();" (call_expression "(**(code **)(puVar23 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1d40a4))" ( (pointer_expression "**(code **)(puVar23 + 0x1d40a4)" * (pointer_expression "*(code **)(puVar23 + 0x1d40a4)" * (cast_expression "(code **)(puVar23 + 0x1d40a4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d40a4)" ( (binary_expression "puVar23 + 0x1d40a4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }" if (parenthesized_expression "(puStack_68 != auStack_60)" ( (binary_expression "puStack_68 != auStack_60" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }" { (expression_statement "(**(code **)(puVar23 + 0x1d3eb0))(puStack_68);" (call_expression "(**(code **)(puVar23 + 0x1d3eb0))(puStack_68)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d3eb0))" ( (pointer_expression "**(code **)(puVar23 + 0x1d3eb0)" * (pointer_expression "*(code **)(puVar23 + 0x1d3eb0)" * (cast_expression "(code **)(puVar23 + 0x1d3eb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d3eb0)" ( (binary_expression "puVar23 + 0x1d3eb0" identifier + number_literal) ))))) )) (argument_list "(puStack_68)" ( identifier ))) ;) })) (expression_statement "pcVar26 = *(code **)(puVar23 + 0x1d3e7c);" (assignment_expression "pcVar26 = *(code **)(puVar23 + 0x1d3e7c)" identifier = (pointer_expression "*(code **)(puVar23 + 0x1d3e7c)" * (cast_expression "(code **)(puVar23 + 0x1d3e7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + 0x1d3e7c)" ( (binary_expression "puVar23 + 0x1d3e7c" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = iVar19;" (assignment_expression "iVar14 = iVar19" identifier = identifier) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar20 = *(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 "uVar22 = *(uint *)(iVar14 + 0x24);" (assignment_expression "uVar22 = *(uint *)(iVar14 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar14 + 0x24)" * (cast_expression "(uint *)(iVar14 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x24)" ( (binary_expression "iVar14 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puStack_90 = (undefined *)puVar24;" (assignment_expression "puStack_90 = (undefined *)puVar24" identifier = (cast_expression "(undefined *)puVar24" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_a8 = iVar19;" (assignment_expression "iStack_a8 = iVar19" identifier = identifier) ;) (expression_statement "puStack_a4 = auStack_60;" (assignment_expression "puStack_a4 = auStack_60" identifier = identifier) ;) (expression_statement "ppuStack_a0 = &puStack_68;" (assignment_expression "ppuStack_a0 = &puStack_68" identifier = (pointer_expression "&puStack_68" & identifier)) ;) (expression_statement "puStack_9c = puVar21;" (assignment_expression "puStack_9c = puVar21" identifier = identifier) ;) (expression_statement "pWStack_98 = unaff_s4;" (assignment_expression "pWStack_98 = unaff_s4" identifier = identifier) ;) (expression_statement "piStack_94 = unaff_s5;" (assignment_expression "piStack_94 = unaff_s5" identifier = identifier) ;) (expression_statement "(**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);" (call_expression "(**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20)" (parenthesized_expression "(**(code **)(*(int *)*puVar20 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar20 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar20 + 8)" * (cast_expression "(code **)(*(int *)*puVar20 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar20 + 8)" ( (binary_expression "*(int *)*puVar20 + 8" (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar20)" ( (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier)) ))) ;) (expression_statement "uVar4 = puVar20[2];" (assignment_expression "uVar4 = puVar20[2]" identifier = (subscript_expression "puVar20[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);" (assignment_expression "piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" identifier = (pointer_expression "*(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" * (cast_expression "(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20[1] + (uVar22 % uVar4) * 4)" ( (binary_expression "puVar20[1] + (uVar22 % uVar4) * 4" (subscript_expression "puVar20[1]" identifier [ number_literal ]) + (binary_expression "(uVar22 % uVar4) * 4" (parenthesized_expression "(uVar22 % uVar4)" ( (binary_expression "uVar22 % uVar4" identifier % identifier) )) * number_literal)) ))))) ;) (if_statement "if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }" if (parenthesized_expression "(piVar11 != (int *)0x0)" ( (binary_expression "piVar11 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }" { (expression_statement "uVar10 = ((int *)*piVar11)[1];" (assignment_expression "uVar10 = ((int *)*piVar11)[1]" identifier = (subscript_expression "((int *)*piVar11)[1]" (parenthesized_expression "((int *)*piVar11)" ( (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar18 = (int *)*piVar11;" (assignment_expression "piVar18 = (int *)*piVar11" identifier = (cast_expression "(int *)*piVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar11" * identifier))) ;) (do_statement "do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);" do (compound_statement "{\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    }" { (expression_statement "piVar2 = piVar18;" (assignment_expression "piVar2 = piVar18" identifier = identifier) ;) (if_statement "if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }" if (parenthesized_expression "(uVar22 == uVar10)" ( (binary_expression "uVar22 == uVar10" identifier == identifier) )) (compound_statement "{\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }" { (expression_statement "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);" (assignment_expression "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar20 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar20 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar20 + 0xc)" ( (binary_expression "*(int *)*puVar20 + 0xc" (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) + number_literal) ))))) ;) (if_statement "if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }" if (parenthesized_expression "((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0))" ( (binary_expression "(*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)" (parenthesized_expression "(*piVar11 != 0)" ( (binary_expression "*piVar11 != 0" (pointer_expression "*piVar11" * identifier) != number_literal) )) && (parenthesized_expression "(*(int *)(*piVar11 + 8) != 0)" ( (binary_expression "*(int *)(*piVar11 + 8) != 0" (pointer_expression "*(int *)(*piVar11 + 8)" * (cast_expression "(int *)(*piVar11 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 8)" ( (binary_expression "*piVar11 + 8" (pointer_expression "*piVar11" * identifier) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }" { (expression_statement "piVar11 = (int *)(*pcVar25)();" (assignment_expression "piVar11 = (int *)(*pcVar25)()" identifier = (cast_expression "(int *)(*pcVar25)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar11;" return identifier ;) })) (goto_statement "goto LAB_0025e698;" goto statement_identifier ;) })) (expression_statement "piVar18 = (int *)*piVar2;" (assignment_expression "piVar18 = (int *)*piVar2" identifier = (cast_expression "(int *)*piVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar2" * identifier))) ;) (if_statement "if (piVar18 == (int *)0x0) break;" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = piVar18[1];" (assignment_expression "uVar10 = piVar18[1]" identifier = (subscript_expression "piVar18[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar11 = piVar2;" (assignment_expression "piVar11 = piVar2" identifier = identifier) ;) }) while (parenthesized_expression "(uVar22 % uVar4 == uVar10 % uVar4)" ( (binary_expression "uVar22 % uVar4 == uVar10 % uVar4" (binary_expression "uVar22 % uVar4" identifier % identifier) == (binary_expression "uVar10 % uVar4" identifier % identifier)) )) ;) })) (expression_statement "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);" (assignment_expression "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc)" identifier = (pointer_expression "*(code **)(*(int *)*puVar20 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar20 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar20 + 0xc)" ( (binary_expression "*(int *)*puVar20 + 0xc" (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) + number_literal) ))))) ;) (labeled_statement "LAB_0025e698:\n  (*pcVar25)();" statement_identifier : (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);" (assignment_expression "puVar5 = (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_b4 = puVar5 + 7;" (assignment_expression "puStack_b4 = puVar5 + 7" identifier = (binary_expression "puVar5 + 7" identifier + number_literal)) ;) (expression_statement "*puVar5 = uVar22;" (assignment_expression "*puVar5 = uVar22" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "iVar19 = *(int *)(pcVar26 + 0x1d3e44);" (assignment_expression "iVar19 = *(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 "pcVar25 = *(code **)(pcVar26 + 0x1d8260);" (assignment_expression "pcVar25 = *(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 "puVar5[1] = (uint)puStack_b4;" (assignment_expression "puVar5[1] = (uint)puStack_b4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_b4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = *(uint *)(iVar19 + -0x636c);" (assignment_expression "uVar4 = *(uint *)(iVar19 + -0x636c)" identifier = (pointer_expression "*(uint *)(iVar19 + -0x636c)" * (cast_expression "(uint *)(iVar19 + -0x636c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + -0x636c)" ( (binary_expression "iVar19 + -0x636c" identifier + number_literal) ))))) ;) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[2] = 1;" (assignment_expression "puVar5[2] = 1" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar5[5] = uVar4;" (assignment_expression "puVar5[5] = uVar4" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar19 = (*pcVar25)(uVar22);" (assignment_expression "iVar19 = (*pcVar25)(uVar22)" identifier = (call_expression "(*pcVar25)(uVar22)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(uVar22)" ( identifier )))) ;) (if_statement "if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }" { (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "piVar11 = (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 (*piVar11 == 2) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar11 == 2)" ( (binary_expression "*piVar11 == 2" (pointer_expression "*piVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (if_statement "if (*piVar11 == 0x14) goto LAB_0025e80c;" if (parenthesized_expression "(*piVar11 == 0x14)" ( (binary_expression "*piVar11 == 0x14" (pointer_expression "*piVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e80c;" goto statement_identifier ;)) (expression_statement "puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar21 = (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 "uVar4 = *puVar5;" (assignment_expression "uVar4 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);" (assignment_expression "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*piVar11)" (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 "(*piVar11)" ( (pointer_expression "*piVar11" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);" (call_expression "(**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27)" (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 "(puVar21,uVar4,uVar27)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" identifier = (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (goto_statement "goto LAB_0025e810;" goto statement_identifier ;) })) (expression_statement "puStack_b8 = puVar5 + 3;" (assignment_expression "puStack_b8 = puVar5 + 3" identifier = (binary_expression "puVar5 + 3" identifier + number_literal)) ;) (expression_statement "puVar24 = &uStack_d0;" (assignment_expression "puVar24 = &uStack_d0" identifier = (pointer_expression "&uStack_d0" & identifier)) ;) (expression_statement "pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_b0 = (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  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" statement_identifier : (expression_statement "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar19)" (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 "(iVar19)" ( identifier )))) ;)) (if_statement "if (iVar14 == 0) goto LAB_0025e7f8;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0025e7f8;" goto statement_identifier ;)) (do_statement "do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );" do (compound_statement "{\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  }" { (expression_statement "iVar14 = iVar14 + 0x13;" (assignment_expression "iVar14 = iVar14 + 0x13" identifier = (binary_expression "iVar14 + 0x13" identifier + number_literal)) ;) (expression_statement "puStack_d8 = puVar24;" (assignment_expression "puStack_d8 = puVar24" identifier = identifier) ;) (expression_statement "iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);" (assignment_expression "iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d820c))(iVar14)" (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 "(iVar14)" ( identifier )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);" (call_expression "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,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_d8,iVar14,iVar14 + iVar15,0)" ( (pointer_expression "&puStack_d8" & identifier) , identifier , (binary_expression "iVar14 + iVar15" identifier + identifier) , number_literal ))) ;) (expression_statement "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);" (assignment_expression "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,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_d8,uStack_d4,0xc70f6907)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar5[2] == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(puVar5[2] == 0)" ( (binary_expression "puVar5[2] == 0" (subscript_expression "puVar5[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 "puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);" (assignment_expression "puVar21 = (uint *)((uint)unaff_s5 % puVar5[2])" identifier = (cast_expression "(uint *)((uint)unaff_s5 % puVar5[2])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)unaff_s5 % puVar5[2])" ( (binary_expression "(uint)unaff_s5 % puVar5[2]" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % (subscript_expression "puVar5[2]" identifier [ number_literal ])) )))) ;) (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" identifier = (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,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 "(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" ( (binary_expression "puVar5 + 1" identifier + number_literal) , identifier , (pointer_expression "&puStack_d8" & identifier) , identifier ))))) ;) (if_statement "if (piVar11 == (int *)0x0) goto LAB_0025e8e0;" if (parenthesized_expression "(piVar11 == (int *)0x0)" ( (binary_expression "piVar11 == (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 "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar25 = *(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 (*piVar11 == 0) goto LAB_0025e8e4;" if (parenthesized_expression "(*piVar11 == 0)" ( (binary_expression "*piVar11 == 0" (pointer_expression "*piVar11" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e8e4;" goto statement_identifier ;)) (while_statement "while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }" { (if_statement "if (puStack_d8 == puVar24) goto LAB_0025e720;" if (parenthesized_expression "(puStack_d8 == puVar24)" ( (binary_expression "puStack_d8 == 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 "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar19)" (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 "(iVar19)" ( identifier )))) ;) (if_statement "if (iVar14 != 0) break;" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);" statement_identifier : (expression_statement "iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d81c8))(iVar19)" (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 "(iVar19)" ( identifier )))) ;)) (if_statement "if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }" { (labeled_statement "LAB_0025e80c:\n        piVar11 = (int *)*puVar20;" statement_identifier : (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" identifier = (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;)) }) (else_clause "else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" else (compound_statement "{\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" { (expression_statement "uVar4 = *puVar5;" (assignment_expression "uVar4 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "puVar9 = (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 "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);" (assignment_expression "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9)" identifier = (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*puVar9)" (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 "(*puVar9)" ( (pointer_expression "*puVar9" * identifier) )))) ;) (expression_statement "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);" (call_expression "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27)" (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,uVar4,uVar27)" ( (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 "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" identifier = (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) }))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);" statement_identifier : (expression_statement "(**(code **)(*piVar11 + 8))(piVar11);" (call_expression "(**(code **)(*piVar11 + 8))(piVar11)" (parenthesized_expression "(**(code **)(*piVar11 + 8))" ( (pointer_expression "**(code **)(*piVar11 + 8)" * (pointer_expression "*(code **)(*piVar11 + 8)" * (cast_expression "(code **)(*piVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 8)" ( (binary_expression "*piVar11 + 8" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) )) (argument_list "(piVar11)" ( identifier ))) ;)) (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);" (assignment_expression "piVar11 = (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 "uVar4 = puVar20[2];" (assignment_expression "uVar4 = puVar20[2]" identifier = (subscript_expression "puVar20[2]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = puVar20[1];" (assignment_expression "iVar14 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n        trap(7);\n      }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar11[2] = (int)puVar5;" (assignment_expression "piVar11[2] = (int)puVar5" (subscript_expression "piVar11[2]" identifier [ number_literal ]) = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (expression_statement "piVar11[1] = uVar22;" (assignment_expression "piVar11[1] = uVar22" (subscript_expression "piVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = (uint *)((uVar22 % uVar4) * 4);" (assignment_expression "puVar5 = (uint *)((uVar22 % uVar4) * 4)" identifier = (cast_expression "(uint *)((uVar22 % uVar4) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar22 % uVar4) * 4)" ( (binary_expression "(uVar22 % uVar4) * 4" (parenthesized_expression "(uVar22 % uVar4)" ( (binary_expression "uVar22 % uVar4" identifier % identifier) )) * number_literal) )))) ;) (expression_statement "piVar18 = *(int **)(iVar14 + (int)puVar5);" (assignment_expression "piVar18 = *(int **)(iVar14 + (int)puVar5)" identifier = (pointer_expression "*(int **)(iVar14 + (int)puVar5)" * (cast_expression "(int **)(iVar14 + (int)puVar5)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + (int)puVar5)" ( (binary_expression "iVar14 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }" if (parenthesized_expression "(piVar18 == (int *)0x0)" ( (binary_expression "piVar18 == (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_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }" { (labeled_statement "LAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);" statement_identifier : (expression_statement "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);" (call_expression "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[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_d8,puVar20 + 5,uVar4,puVar20[4],1)" ( (pointer_expression "&puStack_d8" & identifier) , (binary_expression "puVar20 + 5" identifier + number_literal) , identifier , (subscript_expression "puVar20[4]" identifier [ number_literal ]) , number_literal ))) ;)) (expression_statement "uVar4 = uStack_d4;" (assignment_expression "uVar4 = uStack_d4" identifier = identifier) ;) (if_statement "if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" if (parenthesized_expression "(puStack_d8._0_1_ == '\0')" ( (binary_expression "puStack_d8._0_1_ == '\0'" (field_expression "puStack_d8._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          puVar9 = (undefined4 *)puVar20[1];\n        }" { (expression_statement "puVar9 = (undefined4 *)puVar20[1];" (assignment_expression "puVar9 = (undefined4 *)puVar20[1]" identifier = (cast_expression "(undefined4 *)puVar20[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[1]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" else (compound_statement "{\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" { (if_statement "if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" if (parenthesized_expression "(uStack_d4 == 1)" ( (binary_expression "uStack_d4 == 1" identifier == number_literal) )) (compound_statement "{\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }" { (expression_statement "puVar9 = puVar20 + 7;" (assignment_expression "puVar9 = puVar20 + 7" identifier = (binary_expression "puVar20 + 7" identifier + number_literal)) ;) (expression_statement "puVar20[7] = 0;" (assignment_expression "puVar20[7] = 0" (subscript_expression "puVar20[7]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" else (compound_statement "{\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" { (expression_statement "puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);" (assignment_expression "puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4)" identifier = (cast_expression "(undefined4 *)FUN_0025e1a8(uStack_d4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0025e1a8(uStack_d4)" identifier (argument_list "(uStack_d4)" ( identifier ))))) ;) }))) (expression_statement "piVar18 = (int *)puVar20[3];" (assignment_expression "piVar18 = (int *)puVar20[3]" identifier = (cast_expression "(int *)puVar20[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar20[3] = 0;" (assignment_expression "puVar20[3] = 0" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }" if (parenthesized_expression "(piVar18 != (int *)0x0)" ( (binary_expression "piVar18 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);" do (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            }" { (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "uVar16 = (uint)piVar18[1] % uVar4;" (assignment_expression "uVar16 = (uint)piVar18[1] % uVar4" identifier = (binary_expression "(uint)piVar18[1] % uVar4" (cast_expression "(uint)piVar18[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar18[1]" identifier [ number_literal ])) % identifier)) ;) (expression_statement "puVar13 = puVar9 + uVar16;" (assignment_expression "puVar13 = puVar9 + uVar16" identifier = (binary_expression "puVar9 + uVar16" identifier + identifier)) ;) (expression_statement "piVar2 = (int *)*piVar18;" (assignment_expression "piVar2 = (int *)*piVar18" identifier = (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (if_statement "if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" if (parenthesized_expression "((int *)*puVar13 == (int *)0x0)" ( (binary_expression "(int *)*puVar13 == (int *)0x0" (cast_expression "(int *)*puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }" { (expression_statement "*piVar18 = puVar20[3];" (assignment_expression "*piVar18 = puVar20[3]" (pointer_expression "*piVar18" * identifier) = (subscript_expression "puVar20[3]" identifier [ number_literal ])) ;) (expression_statement "puVar20[3] = piVar18;" (assignment_expression "puVar20[3] = piVar18" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar13 = puVar20 + 3;" (assignment_expression "*puVar13 = puVar20 + 3" (pointer_expression "*puVar13" * identifier) = (binary_expression "puVar20 + 3" identifier + number_literal)) ;) (if_statement "if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }" if (parenthesized_expression "(*piVar18 != 0)" ( (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" * identifier) != number_literal) )) (compound_statement "{\n                  puVar9[uVar10] = piVar18;\n                }" { (expression_statement "puVar9[uVar10] = piVar18;" (assignment_expression "puVar9[uVar10] = piVar18" (subscript_expression "puVar9[uVar10]" identifier [ identifier ]) = identifier) ;) })) }) (else_clause "else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" else (compound_statement "{\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" { (expression_statement "*piVar18 = *(int *)*puVar13;" (assignment_expression "*piVar18 = *(int *)*puVar13" (pointer_expression "*piVar18" * identifier) = (pointer_expression "*(int *)*puVar13" * (cast_expression "(int *)*puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)))) ;) (expression_statement "*(int **)*puVar13 = piVar18;" (assignment_expression "*(int **)*puVar13 = piVar18" (pointer_expression "*(int **)*puVar13" * (cast_expression "(int **)*puVar13" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar13" * identifier))) = identifier) ;) (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" identifier = identifier) ;) }))) (expression_statement "piVar18 = piVar2;" (assignment_expression "piVar18 = piVar2" identifier = identifier) ;) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) }) while (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" if (parenthesized_expression "((undefined4 *)puVar20[1] != puVar20 + 7)" ( (binary_expression "(undefined4 *)puVar20[1] != puVar20 + 7" (cast_expression "(undefined4 *)puVar20[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[1]" identifier [ number_literal ])) != (binary_expression "puVar20 + 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 (uVar4 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "puVar20[2] = uVar4;" (assignment_expression "puVar20[2] = uVar4" (subscript_expression "puVar20[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar20[1] = puVar9;" (assignment_expression "puVar20[1] = puVar9" (subscript_expression "puVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = (uint *)(uVar22 % uVar4 << 2);" (assignment_expression "puVar5 = (uint *)(uVar22 % uVar4 << 2)" identifier = (cast_expression "(uint *)(uVar22 % uVar4 << 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 % uVar4 << 2)" ( (binary_expression "uVar22 % uVar4 << 2" (binary_expression "uVar22 % uVar4" identifier % identifier) << number_literal) )))) ;) }))) (if_statement "if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" if (parenthesized_expression "(*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0)" ( (binary_expression "*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0" (pointer_expression "*(int **)((int)puVar9 + (int)puVar5)" * (cast_expression "(int **)((int)puVar9 + (int)puVar5)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + (int)puVar5)" ( (binary_expression "(int)puVar9 + (int)puVar5" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }" { (expression_statement "*piVar11 = puVar20[3];" (assignment_expression "*piVar11 = puVar20[3]" (pointer_expression "*piVar11" * identifier) = (subscript_expression "puVar20[3]" identifier [ number_literal ])) ;) (expression_statement "puVar20[3] = piVar11;" (assignment_expression "puVar20[3] = piVar11" (subscript_expression "puVar20[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" if (parenthesized_expression "(*piVar11 == 0)" ( (binary_expression "*piVar11 == 0" (pointer_expression "*piVar11" * identifier) == number_literal) )) (compound_statement "{\n            iVar19 = puVar20[1];\n          }" { (expression_statement "iVar19 = puVar20[1];" (assignment_expression "iVar19 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" else (compound_statement "{\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" { (expression_statement "iVar19 = puVar20[1];" (assignment_expression "iVar19 = puVar20[1]" identifier = (subscript_expression "puVar20[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar20[2] == 0) {\n              trap(7);\n            }" if (parenthesized_expression "(puVar20[2] == 0)" ( (binary_expression "puVar20[2] == 0" (subscript_expression "puVar20[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 **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;" (assignment_expression "*(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11" (pointer_expression "*(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" * (cast_expression "(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" ( (binary_expression "iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4" identifier + (binary_expression "(*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar11 + 4) % (uint)puVar20[2])" ( (binary_expression "*(uint *)(*piVar11 + 4) % (uint)puVar20[2]" (pointer_expression "*(uint *)(*piVar11 + 4)" * (cast_expression "(uint *)(*piVar11 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) )))) % (cast_expression "(uint)puVar20[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar20[2]" identifier [ number_literal ]))) )) * number_literal)) )))) = identifier) ;) }))) (expression_statement "*(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;" (assignment_expression "*(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3" (pointer_expression "*(undefined4 **)(iVar19 + (int)puVar5)" * (cast_expression "(undefined4 **)(iVar19 + (int)puVar5)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + (int)puVar5)" ( (binary_expression "iVar19 + (int)puVar5" identifier + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (binary_expression "puVar20 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" else (compound_statement "{\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" { (expression_statement "*piVar11 = **(int **)((int)puVar9 + (int)puVar5);" (assignment_expression "*piVar11 = **(int **)((int)puVar9 + (int)puVar5)" (pointer_expression "*piVar11" * identifier) = (pointer_expression "**(int **)((int)puVar9 + (int)puVar5)" * (pointer_expression "*(int **)((int)puVar9 + (int)puVar5)" * (cast_expression "(int **)((int)puVar9 + (int)puVar5)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)puVar9 + (int)puVar5)" ( (binary_expression "(int)puVar9 + (int)puVar5" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))))) ;) (expression_statement "**(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;" (assignment_expression "**(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11" (pointer_expression "**(undefined4 **)(puVar20[1] + (int)puVar5)" * (pointer_expression "*(undefined4 **)(puVar20[1] + (int)puVar5)" * (cast_expression "(undefined4 **)(puVar20[1] + (int)puVar5)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20[1] + (int)puVar5)" ( (binary_expression "puVar20[1] + (int)puVar5" (subscript_expression "puVar20[1]" identifier [ number_literal ]) + (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) = identifier) ;) }))) (expression_statement "iVar19 = *(int *)*puVar20;" (assignment_expression "iVar19 = *(int *)*puVar20" identifier = (pointer_expression "*(int *)*puVar20" * (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier)))) ;) (expression_statement "puVar20[4] = puVar20[4] + 1;" (assignment_expression "puVar20[4] = puVar20[4] + 1" (subscript_expression "puVar20[4]" identifier [ number_literal ]) = (binary_expression "puVar20[4] + 1" (subscript_expression "puVar20[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);" (assignment_expression "piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20)" identifier = (cast_expression "(int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(iVar19 + 0xc))((int *)*puVar20)" (parenthesized_expression "(**(code **)(iVar19 + 0xc))" ( (pointer_expression "**(code **)(iVar19 + 0xc)" * (pointer_expression "*(code **)(iVar19 + 0xc)" * (cast_expression "(code **)(iVar19 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar19 + 0xc)" ( (binary_expression "iVar19 + 0xc" identifier + number_literal) ))))) )) (argument_list "((int *)*puVar20)" ( (cast_expression "(int *)*puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier)) ))))) ;) (return_statement "return piVar11;" return identifier ;) })) (expression_statement "uVar10 = ((int *)*piVar18)[1];" (assignment_expression "uVar10 = ((int *)*piVar18)[1]" identifier = (subscript_expression "((int *)*piVar18)[1]" (parenthesized_expression "((int *)*piVar18)" ( (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier)) )) [ number_literal ])) ;) (expression_statement "piVar2 = (int *)*piVar18;" (assignment_expression "piVar2 = (int *)*piVar18" identifier = (cast_expression "(int *)*piVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar18" * identifier))) ;) (while_statement "while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }" while (parenthesized_expression "(piVar12 = piVar2, uVar22 != uVar10)" ( (comma_expression "piVar12 = piVar2, uVar22 != uVar10" (assignment_expression "piVar12 = piVar2" identifier = identifier) , (binary_expression "uVar22 != uVar10" identifier != identifier)) )) (compound_statement "{\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }" { (expression_statement "piVar2 = (int *)*piVar12;" (assignment_expression "piVar2 = (int *)*piVar12" identifier = (cast_expression "(int *)*piVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (if_statement "if (piVar2 == (int *)0x0) goto LAB_0025eb6c;" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (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 "uVar10 = piVar2[1];" (assignment_expression "uVar10 = piVar2[1]" identifier = (subscript_expression "piVar2[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar4 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "piVar18 = piVar12;" (assignment_expression "piVar18 = piVar12" identifier = identifier) ;) (if_statement "if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;" if (parenthesized_expression "(uVar22 % uVar4 != uVar10 % uVar4)" ( (binary_expression "uVar22 % uVar4 != uVar10 % uVar4" (binary_expression "uVar22 % uVar4" identifier % identifier) != (binary_expression "uVar10 % uVar4" identifier % identifier)) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) })) (if_statement "if (*piVar18 == 0) goto LAB_0025eb6c;" if (parenthesized_expression "(*piVar18 == 0)" ( (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" * identifier) == number_literal) )) (goto_statement "goto LAB_0025eb6c;" goto statement_identifier ;)) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))(piVar11);" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))(piVar11)" (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 "(piVar11)" ( 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      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" statement_identifier : (expression_statement "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar25 = *(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      puVar6 = (uint *)(*pcVar25)(0x20);" statement_identifier : (expression_statement "puVar6 = (uint *)(*pcVar25)(0x20);" (assignment_expression "puVar6 = (uint *)(*pcVar25)(0x20)" identifier = (cast_expression "(uint *)(*pcVar25)(0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar25)(0x20)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(0x20)" ( number_literal ))))) ;)) (expression_statement "uVar4 = uStack_d4;" (assignment_expression "uVar4 = uStack_d4" identifier = identifier) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[1] = (uint)(puVar6 + 3);" (assignment_expression "puVar6[1] = (uint)(puVar6 + 3)" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (call_expression "(uint)(puVar6 + 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar6 + 3)" ( (binary_expression "puVar6 + 3" identifier + number_literal) )))) ;) (if_statement "if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" if (parenthesized_expression "(puStack_d8 == puVar24)" ( (binary_expression "puStack_d8 == puVar24" identifier == identifier) )) (compound_statement "{\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }" { (expression_statement "puVar6[3] = uStack_d0;" (assignment_expression "puVar6[3] = uStack_d0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[4] = uStack_cc;" (assignment_expression "puVar6[4] = uStack_cc" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[5] = uStack_c8;" (assignment_expression "puVar6[5] = uStack_c8" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[6] = uStack_c4;" (assignment_expression "puVar6[6] = uStack_c4" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" else (compound_statement "{\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" { (expression_statement "puVar6[1] = (uint)puStack_d8;" (assignment_expression "puVar6[1] = (uint)puStack_d8" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (cast_expression "(uint)puStack_d8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar6[3] = uStack_d0;" (assignment_expression "puVar6[3] = uStack_d0" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "uStack_ac = puVar5[6];" (assignment_expression "uStack_ac = puVar5[6]" identifier = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "uVar16 = puVar5[4];" (assignment_expression "uVar16 = puVar5[4]" identifier = (subscript_expression "puVar5[4]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar5[2];" (assignment_expression "uVar10 = puVar5[2]" identifier = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = *(code **)(pcVar26 + 0x1d45c0);" (assignment_expression "pcVar25 = *(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_d4 = 0;" (assignment_expression "uStack_d4 = 0" identifier = number_literal) ;) (expression_statement "puVar6[2] = uVar4;" (assignment_expression "puVar6[2] = uVar4" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uStack_d0 = uStack_d0 & 0xffffff;" (assignment_expression "uStack_d0 = uStack_d0 & 0xffffff" identifier = (binary_expression "uStack_d0 & 0xffffff" identifier & number_literal)) ;) (expression_statement "puStack_d8 = puVar24;" (assignment_expression "puStack_d8 = puVar24" identifier = identifier) ;) (expression_statement "(*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);" (call_expression "(*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(acStack_c0,puVar5 + 5,uVar10,uVar16,1)" ( identifier , (binary_expression "puVar5 + 5" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (expression_statement "uVar4 = uStack_bc;" (assignment_expression "uVar4 = uStack_bc" identifier = identifier) ;) (if_statement "if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" if (parenthesized_expression "(acStack_c0[0] == '\0')" ( (binary_expression "acStack_c0[0] == '\0'" (subscript_expression "acStack_c0[0]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }" { (expression_statement "puVar7 = (uint *)puVar5[1];" (assignment_expression "puVar7 = (uint *)puVar5[1]" identifier = (cast_expression "(uint *)puVar5[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar6[7] = (uint)unaff_s5;" (assignment_expression "puVar6[7] = (uint)unaff_s5" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar21 = puVar7 + (int)puVar21;" (assignment_expression "puVar21 = puVar7 + (int)puVar21" identifier = (binary_expression "puVar7 + (int)puVar21" identifier + (cast_expression "(int)puVar21" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar8 = (uint *)*puVar21;" (assignment_expression "puVar8 = (uint *)*puVar21" identifier = (cast_expression "(uint *)*puVar21" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (if_statement "if (puVar8 != (uint *)0x0) goto LAB_0025ea48;" if (parenthesized_expression "(puVar8 != (uint *)0x0)" ( (binary_expression "puVar8 != (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        uVar4 = puVar5[3];" statement_identifier : (expression_statement "uVar4 = puVar5[3];" (assignment_expression "uVar4 = puVar5[3]" identifier = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;)) (expression_statement "puVar5[3] = (uint)puVar6;" (assignment_expression "puVar5[3] = (uint)puVar6" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar6 = uVar4;" (assignment_expression "*puVar6 = uVar4" (pointer_expression "*puVar6" * identifier) = identifier) ;) (if_statement "if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }" { (if_statement "if (puVar5[2] == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(puVar5[2] == 0)" ( (binary_expression "puVar5[2] == 0" (subscript_expression "puVar5[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 "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;" (assignment_expression "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6" (subscript_expression "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]]" identifier [ (binary_expression "*(uint *)(uVar4 + 0x1c) % puVar5[2]" (pointer_expression "*(uint *)(uVar4 + 0x1c)" * (cast_expression "(uint *)(uVar4 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + 0x1c)" ( (binary_expression "uVar4 + 0x1c" identifier + number_literal) )))) % (subscript_expression "puVar5[2]" identifier [ number_literal ])) ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "*puVar21 = (uint)puStack_b8;" (assignment_expression "*puVar21 = (uint)puStack_b8" (pointer_expression "*puVar21" * identifier) = (cast_expression "(uint)puStack_b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" else (compound_statement "{\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" { (if_statement "if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" if (parenthesized_expression "(uStack_bc == 1)" ( (binary_expression "uStack_bc == 1" identifier == number_literal) )) (compound_statement "{\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }" { (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7 = puStack_b4;" (assignment_expression "puVar7 = puStack_b4" identifier = identifier) ;) }) (else_clause "else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" else (compound_statement "{\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" { (expression_statement "puVar7 = (uint *)(*pcStack_b0)(uStack_bc);" (assignment_expression "puVar7 = (uint *)(*pcStack_b0)(uStack_bc)" identifier = (cast_expression "(uint *)(*pcStack_b0)(uStack_bc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_b0)(uStack_bc)" (parenthesized_expression "(*pcStack_b0)" ( (pointer_expression "*pcStack_b0" * identifier) )) (argument_list "(uStack_bc)" ( identifier ))))) ;) }))) (expression_statement "puVar21 = (uint *)puVar5[3];" (assignment_expression "puVar21 = (uint *)puVar5[3]" identifier = (cast_expression "(uint *)puVar5[3]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }" if (parenthesized_expression "(puVar21 != (uint *)0x0)" ( (binary_expression "puVar21 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);" do (compound_statement "{\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          }" { (while_statement "while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }" { (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "uVar16 = puVar21[7] % uVar4;" (assignment_expression "uVar16 = puVar21[7] % uVar4" identifier = (binary_expression "puVar21[7] % uVar4" (subscript_expression "puVar21[7]" identifier [ number_literal ]) % identifier)) ;) (expression_statement "puVar8 = puVar7 + uVar16;" (assignment_expression "puVar8 = puVar7 + uVar16" identifier = (binary_expression "puVar7 + uVar16" identifier + identifier)) ;) (expression_statement "puVar17 = (uint *)*puVar21;" (assignment_expression "puVar17 = (uint *)*puVar21" identifier = (cast_expression "(uint *)*puVar21" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (if_statement "if ((uint *)*puVar8 == (uint *)0x0) break;" if (parenthesized_expression "((uint *)*puVar8 == (uint *)0x0)" ( (binary_expression "(uint *)*puVar8 == (uint *)0x0" (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "*puVar21 = *(uint *)*puVar8;" (assignment_expression "*puVar21 = *(uint *)*puVar8" (pointer_expression "*puVar21" * identifier) = (pointer_expression "*(uint *)*puVar8" * (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier)))) ;) (expression_statement "*(uint **)*puVar8 = puVar21;" (assignment_expression "*(uint **)*puVar8 = puVar21" (pointer_expression "*(uint **)*puVar8" * (cast_expression "(uint **)*puVar8" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar8" * identifier))) = identifier) ;) (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" identifier = identifier) ;) (labeled_statement "LAB_0025e9a0:\n              puVar21 = puVar17;" statement_identifier : (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;)) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) (if_statement "if (puVar17 == (uint *)0x0) goto LAB_0025ea00;" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (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 "*puVar21 = puVar5[3];" (assignment_expression "*puVar21 = puVar5[3]" (pointer_expression "*puVar21" * identifier) = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "puVar5[3] = (uint)puVar21;" (assignment_expression "puVar5[3] = (uint)puVar21" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (cast_expression "(uint)puVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*puVar8 = (uint)puStack_b8;" (assignment_expression "*puVar8 = (uint)puStack_b8" (pointer_expression "*puVar8" * identifier) = (cast_expression "(uint)puStack_b8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (*puVar21 == 0) goto LAB_0025e9a0;" if (parenthesized_expression "(*puVar21 == 0)" ( (binary_expression "*puVar21 == 0" (pointer_expression "*puVar21" * identifier) == number_literal) )) (goto_statement "goto LAB_0025e9a0;" goto statement_identifier ;)) (expression_statement "puVar7[uVar10] = (uint)puVar21;" (assignment_expression "puVar7[uVar10] = (uint)puVar21" (subscript_expression "puVar7[uVar10]" identifier [ identifier ]) = (cast_expression "(uint)puVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" identifier = identifier) ;) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" identifier = identifier) ;) }) while (parenthesized_expression "(puVar17 != (uint *)0x0)" ( (binary_expression "puVar17 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (labeled_statement "LAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" statement_identifier : (if_statement "if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" if (parenthesized_expression "(puStack_b4 != (uint *)puVar5[1])" ( (binary_expression "puStack_b4 != (uint *)puVar5[1]" identifier != (cast_expression "(uint *)puVar5[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[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 (uVar4 == 0) {\n          trap(7);\n        }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 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 "puVar5[2] = uVar4;" (assignment_expression "puVar5[2] = uVar4" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[1] = (uint)puVar7;" (assignment_expression "puVar5[1] = (uint)puVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar6[7] = (uint)unaff_s5;" (assignment_expression "puVar6[7] = (uint)unaff_s5" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar21 = puVar7 + (uint)unaff_s5 % uVar4;" (assignment_expression "puVar21 = puVar7 + (uint)unaff_s5 % uVar4" identifier = (binary_expression "puVar7 + (uint)unaff_s5 % uVar4" identifier + (binary_expression "(uint)unaff_s5 % uVar4" (cast_expression "(uint)unaff_s5" ( (type_descriptor "uint" type_identifier) ) identifier) % identifier))) ;) (expression_statement "puVar8 = (uint *)*puVar21;" (assignment_expression "puVar8 = (uint *)*puVar21" identifier = (cast_expression "(uint *)*puVar21" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar21" * identifier))) ;) (if_statement "if (puVar8 == (uint *)0x0) goto LAB_0025ea84;" if (parenthesized_expression "(puVar8 == (uint *)0x0)" ( (binary_expression "puVar8 == (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        *puVar6 = *puVar8;" statement_identifier : (expression_statement "*puVar6 = *puVar8;" (assignment_expression "*puVar6 = *puVar8" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar8" * identifier)) ;)) (expression_statement "*(uint **)*puVar21 = puVar6;" (assignment_expression "*(uint **)*puVar21 = puVar6" (pointer_expression "*(uint **)*puVar21" * (cast_expression "(uint **)*puVar21" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar21" * identifier))) = identifier) ;) }))) (expression_statement "puVar5[4] = puVar5[4] + 1;" (assignment_expression "puVar5[4] = puVar5[4] + 1" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = (binary_expression "puVar5[4] + 1" (subscript_expression "puVar5[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 (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 (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 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) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 ( LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = 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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ;) (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 = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (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 (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_0025e214(int *param_1,Workqueue *param_2,int *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    \n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}" (primitive_type "int") (pointer_declarator "* FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)" (* "*") (function_declarator "FUN_0025e214(int *param_1,Workqueue *param_2,int *param_3)" (identifier "FUN_0025e214") (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  int *piVar2;\n  Task *pTVar3;\n  uint uVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint *puVar7;\n  uint *puVar8;\n  undefined4 *puVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  int iVar15;\n  uint uVar16;\n  uint *puVar17;\n  int *piVar18;\n  int unaff_s1;\n  int iVar19;\n  int *unaff_s2;\n  undefined4 *puVar20;\n  int *unaff_s3;\n  uint *puVar21;\n  Workqueue *unaff_s4;\n  uint uVar22;\n  int *unaff_s5;\n  undefined *puVar23;\n  uint *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  undefined4 uVar27;\n  uint *puStack_d8;\n  uint uStack_d4;\n  uint uStack_d0;\n  uint uStack_cc;\n  uint uStack_c8;\n  uint uStack_c4;\n  char acStack_c0 [4];\n  uint uStack_bc;\n  uint *puStack_b8;\n  uint *puStack_b4;\n  code *pcStack_b0;\n  uint uStack_ac;\n  int iStack_a8;\n  undefined1 *puStack_a4;\n  undefined1 **ppuStack_a0;\n  uint *puStack_9c;\n  Workqueue *pWStack_98;\n  int *piStack_94;\n  undefined *puStack_90;\n  undefined1 *puStack_68;\n  int iStack_64;\n  undefined1 auStack_60 [20];\n  int *piStack_4c;\n  int iStack_48;\n  int *piStack_44;\n  int *piStack_40;\n  code *pcStack_3c;\n  \n  puVar24 = (uint *)PTR__environ_00433318;\n  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }\n  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);\n  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);\n                    \n  iVar19 = 0x20;\n  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);\n  pcVar26 = FUN_0025e3dc;\n  piVar11 = piVar18;\n  puVar23 = PTR_FUN_00432258;\n  (*(code *)PTR_FUN_00432258)();\n  puStack_68 = auStack_60;\n  piStack_4c = piVar18;\n  iStack_48 = unaff_s1;\n  piStack_44 = unaff_s2;\n  piStack_40 = unaff_s3;\n  pcStack_3c = pcVar26;\n  (**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);\n  puVar21 = *(uint **)(iVar19 + 0x24);\n  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);\n  if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }\n  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;\n  (**(code **)(puVar23 + 0x1d40a4))();\n  if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }\n  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);\n  iVar14 = iVar19;\n  (*pcVar26)();\n  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);\n  uVar22 = *(uint *)(iVar14 + 0x24);\n  puStack_90 = (undefined *)puVar24;\n  iStack_a8 = iVar19;\n  puStack_a4 = auStack_60;\n  ppuStack_a0 = &puStack_68;\n  puStack_9c = puVar21;\n  pWStack_98 = unaff_s4;\n  piStack_94 = unaff_s5;\n  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);\n  uVar4 = puVar20[2];\n  if (uVar4 == 0) {\n    trap(7);\n  }\n  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);\n  if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }\n  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\nLAB_0025e698:\n  (*pcVar25)();\n  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);\n  puStack_b4 = puVar5 + 7;\n  *puVar5 = uVar22;\n  iVar19 = *(int *)(pcVar26 + 0x1d3e44);\n  pcVar25 = *(code **)(pcVar26 + 0x1d8260);\n  puVar5[1] = (uint)puStack_b4;\n  uVar4 = *(uint *)(iVar19 + -0x636c);\n  puVar5[4] = 0;\n  puVar5[7] = 0;\n  puVar5[2] = 1;\n  puVar5[3] = 0;\n  puVar5[6] = 0;\n  puVar5[5] = uVar4;\n  iVar19 = (*pcVar25)(uVar22);\n  if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }\n  puStack_b8 = puVar5 + 3;\n  puVar24 = &uStack_d0;\n  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);\nLAB_0025e720:\n  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n  if (iVar14 == 0) goto LAB_0025e7f8;\n  do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "Task *pTVar3;" (type_identifier "Task") (pointer_declarator "*pTVar3" (* "*") (identifier "pTVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int *piVar18;" (primitive_type "int") (pointer_declarator "*piVar18" (* "*") (identifier "piVar18")) (; ";")) (declaration "int unaff_s1;" (primitive_type "int") (identifier "unaff_s1") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int *unaff_s3;" (primitive_type "int") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "uint *puVar21;" (type_identifier "uint") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "Workqueue *unaff_s4;" (type_identifier "Workqueue") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int *unaff_s5;" (primitive_type "int") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "uint *puVar24;" (type_identifier "uint") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "undefined4 uVar27;" (type_identifier "undefined4") (identifier "uVar27") (; ";")) (declaration "uint *puStack_d8;" (type_identifier "uint") (pointer_declarator "*puStack_d8" (* "*") (identifier "puStack_d8")) (; ";")) (declaration "uint uStack_d4;" (type_identifier "uint") (identifier "uStack_d4") (; ";")) (declaration "uint uStack_d0;" (type_identifier "uint") (identifier "uStack_d0") (; ";")) (declaration "uint uStack_cc;" (type_identifier "uint") (identifier "uStack_cc") (; ";")) (declaration "uint uStack_c8;" (type_identifier "uint") (identifier "uStack_c8") (; ";")) (declaration "uint uStack_c4;" (type_identifier "uint") (identifier "uStack_c4") (; ";")) (declaration "char acStack_c0 [4];" (primitive_type "char") (array_declarator "acStack_c0 [4]" (identifier "acStack_c0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint uStack_bc;" (type_identifier "uint") (identifier "uStack_bc") (; ";")) (declaration "uint *puStack_b8;" (type_identifier "uint") (pointer_declarator "*puStack_b8" (* "*") (identifier "puStack_b8")) (; ";")) (declaration "uint *puStack_b4;" (type_identifier "uint") (pointer_declarator "*puStack_b4" (* "*") (identifier "puStack_b4")) (; ";")) (declaration "code *pcStack_b0;" (type_identifier "code") (pointer_declarator "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (; ";")) (declaration "uint uStack_ac;" (type_identifier "uint") (identifier "uStack_ac") (; ";")) (declaration "int iStack_a8;" (primitive_type "int") (identifier "iStack_a8") (; ";")) (declaration "undefined1 *puStack_a4;" (type_identifier "undefined1") (pointer_declarator "*puStack_a4" (* "*") (identifier "puStack_a4")) (; ";")) (declaration "undefined1 **ppuStack_a0;" (type_identifier "undefined1") (pointer_declarator "**ppuStack_a0" (* "*") (pointer_declarator "*ppuStack_a0" (* "*") (identifier "ppuStack_a0"))) (; ";")) (declaration "uint *puStack_9c;" (type_identifier "uint") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "Workqueue *pWStack_98;" (type_identifier "Workqueue") (pointer_declarator "*pWStack_98" (* "*") (identifier "pWStack_98")) (; ";")) (declaration "int *piStack_94;" (primitive_type "int") (pointer_declarator "*piStack_94" (* "*") (identifier "piStack_94")) (; ";")) (declaration "undefined *puStack_90;" (type_identifier "undefined") (pointer_declarator "*puStack_90" (* "*") (identifier "puStack_90")) (; ";")) (declaration "undefined1 *puStack_68;" (type_identifier "undefined1") (pointer_declarator "*puStack_68" (* "*") (identifier "puStack_68")) (; ";")) (declaration "int iStack_64;" (primitive_type "int") (identifier "iStack_64") (; ";")) (declaration "undefined1 auStack_60 [20];" (type_identifier "undefined1") (array_declarator "auStack_60 [20]" (identifier "auStack_60") ([ "[") (number_literal "20") (] "]")) (; ";")) (declaration "int *piStack_4c;" (primitive_type "int") (pointer_declarator "*piStack_4c" (* "*") (identifier "piStack_4c")) (; ";")) (declaration "int iStack_48;" (primitive_type "int") (identifier "iStack_48") (; ";")) (declaration "int *piStack_44;" (primitive_type "int") (pointer_declarator "*piStack_44" (* "*") (identifier "piStack_44")) (; ";")) (declaration "int *piStack_40;" (primitive_type "int") (pointer_declarator "*piStack_40" (* "*") (identifier "piStack_40")) (; ";")) (declaration "code *pcStack_3c;" (type_identifier "code") (pointer_declarator "*pcStack_3c" (* "*") (identifier "pcStack_3c")) (; ";")) (expression_statement "puVar24 = (uint *)PTR__environ_00433318;" (assignment_expression "puVar24 = (uint *)PTR__environ_00433318" (identifier "puVar24") (= "=") (cast_expression "(uint *)PTR__environ_00433318" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__environ_00433318"))) (; ";")) (if_statement "if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }\n  else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR__environ_00433318 + -0x2830) == 0)" (( "(") (binary_expression "*(int *)(PTR__environ_00433318 + -0x2830) == 0" (pointer_expression "*(int *)(PTR__environ_00433318 + -0x2830)" (* "*") (cast_expression "(int *)(PTR__environ_00433318 + -0x2830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR__environ_00433318 + -0x2830)" (( "(") (binary_expression "PTR__environ_00433318 + -0x2830" (identifier "PTR__environ_00433318") (+ "+") (number_literal "-0x2830")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);\n                    \n    (*(code *)PTR_Lock_00434030)(unaff_s1);\n    puVar23 = PTR_s_alize_xindex_004323b4;\n    piVar18 = (int *)*param_3;\n    unaff_s3 = param_1 + 1;\n    piVar11 = (int *)param_3[1];\n    cVar1 = *(char *)(param_1 + 1);\n    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;\n    *(undefined4 *)(unaff_s1 + 0x10) = 0;\n    uVar27 = *(undefined4 *)(puVar23 + -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    *(int *)((int)puVar24 + -0x2830) = unaff_s1;\n    *param_1 = (int)param_3;\n    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;\n    unaff_s2 = param_3;\n    unaff_s4 = param_2;\n    unaff_s5 = param_1;\n    if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\n    }\n  }" ({ "{") (expression_statement "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);" (assignment_expression "unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20)" (identifier "unaff_s1") (= "=") (call_expression "(*(code *)PTR_operator_new_0043233c)(0x20)" (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 "(0x20)" (( "(") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_Lock_00434030)(unaff_s1);" (call_expression "(*(code *)PTR_Lock_00434030)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_Lock_00434030)" (( "(") (pointer_expression "*(code *)PTR_Lock_00434030" (* "*") (cast_expression "(code *)PTR_Lock_00434030" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_Lock_00434030"))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "puVar23 = PTR_s_alize_xindex_004323b4;" (assignment_expression "puVar23 = PTR_s_alize_xindex_004323b4" (identifier "puVar23") (= "=") (identifier "PTR_s_alize_xindex_004323b4")) (; ";")) (expression_statement "piVar18 = (int *)*param_3;" (assignment_expression "piVar18 = (int *)*param_3" (identifier "piVar18") (= "=") (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 "piVar11 = (int *)param_3[1];" (assignment_expression "piVar11 = (int *)param_3[1]" (identifier "piVar11") (= "=") (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 "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;" (assignment_expression "*(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c" (pointer_expression "*(int *)(unaff_s1 + 4)" (* "*") (cast_expression "(int *)(unaff_s1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "uVar27 = *(undefined4 *)(puVar23 + -0x636c);" (assignment_expression "uVar27 = *(undefined4 *)(puVar23 + -0x636c)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(puVar23 + -0x636c)" (* "*") (cast_expression "(undefined4 *)(puVar23 + -0x636c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + -0x636c)" (( "(") (binary_expression "puVar23 + -0x636c" (identifier "puVar23") (+ "+") (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 "*(int *)((int)puVar24 + -0x2830) = unaff_s1;" (assignment_expression "*(int *)((int)puVar24 + -0x2830) = unaff_s1" (pointer_expression "*(int *)((int)puVar24 + -0x2830)" (* "*") (cast_expression "(int *)((int)puVar24 + -0x2830)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar24 + -0x2830)" (( "(") (binary_expression "(int)puVar24 + -0x2830" (cast_expression "(int)puVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar24")) (+ "+") (number_literal "-0x2830")) () ")")))) (= "=") (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) = uVar27;" (assignment_expression "*(undefined4 *)(unaff_s1 + 0x14) = uVar27" (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 "uVar27")) (; ";")) (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")) (; ";")) (if_statement "if (cVar1 != '\0') {\n      param_1[3] = 0;\n      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\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      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);\n      param_1[2] = (int)piVar2;\n      if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }\n      return piVar2;\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 "piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);" (assignment_expression "piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" (identifier "piVar2") (= "=") (cast_expression "(int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249)" (( "(") (binary_expression "param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "((int)piVar11 - (int)piVar18 >> 2) * -0x49249249" (parenthesized_expression "((int)piVar11 - (int)piVar18 >> 2)" (( "(") (binary_expression "(int)piVar11 - (int)piVar18 >> 2" (binary_expression "(int)piVar11 - (int)piVar18" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (- "-") (cast_expression "(int)piVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar18"))) (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "-0x49249249"))) () ")")))) (; ";")) (expression_statement "param_1[2] = (int)piVar2;" (assignment_expression "param_1[2] = (int)piVar2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2"))) (; ";")) (if_statement "if (piVar18 != piVar11) {\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }" (if "if") (parenthesized_expression "(piVar18 != piVar11)" (( "(") (binary_expression "piVar18 != piVar11" (identifier "piVar18") (!= "!=") (identifier "piVar11")) () ")")) (compound_statement "{\n        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;\n        do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);\n      }" ({ "{") (expression_statement "puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;" (assignment_expression "puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48" (identifier "puVar23") (= "=") (binary_expression "PTR_PTR__wfilebuf_004321f8 + -0x6d48" (identifier "PTR_PTR__wfilebuf_004321f8") (+ "+") (number_literal "-0x6d48"))) (; ";")) (do_statement "do {\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        } while (piVar2 != piVar18);" (do "do") (compound_statement "{\n          iVar19 = *piVar18;\n          piVar18 = piVar18 + 7;\n          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);\n          *(undefined4 *)(pTVar3 + 4) = 0;\n          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;\n          *(undefined4 *)(pTVar3 + 0xc) = 0;\n          pTVar3[0x10] = (Task)0x0;\n          pTVar3[0x20] = (Task)0x0;\n          *(undefined **)pTVar3 = puVar23;\n          *(int *)(pTVar3 + 0x24) = iVar19;\n          *(int **)(pTVar3 + 0x28) = unaff_s3;\n          gold::Workqueue::queue(param_2,pTVar3);\n          piVar2 = (int *)param_3[1];\n        }" ({ "{") (expression_statement "iVar19 = *piVar18;" (assignment_expression "iVar19 = *piVar18" (identifier "iVar19") (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (expression_statement "piVar18 = piVar18 + 7;" (assignment_expression "piVar18 = piVar18 + 7" (identifier "piVar18") (= "=") (binary_expression "piVar18 + 7" (identifier "piVar18") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);" (assignment_expression "pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" (identifier "pTVar3") (= "=") (cast_expression "(Task *)(*(code *)PTR_operator_new_0043233c)(0x2c)" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_operator_new_0043233c)(0x2c)" (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 "(0x2c)" (( "(") (number_literal "0x2c") () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pTVar3 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar3 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(pTVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar3 + 4)" (( "(") (binary_expression "pTVar3 + 4" (identifier "pTVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(Task **)(pTVar3 + 8) = pTVar3 + 0x10;" (assignment_expression "*(Task **)(pTVar3 + 8) = pTVar3 + 0x10" (pointer_expression "*(Task **)(pTVar3 + 8)" (* "*") (cast_expression "(Task **)(pTVar3 + 8)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pTVar3 + 8)" (( "(") (binary_expression "pTVar3 + 8" (identifier "pTVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "pTVar3 + 0x10" (identifier "pTVar3") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "*(undefined4 *)(pTVar3 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(pTVar3 + 0xc) = 0" (pointer_expression "*(undefined4 *)(pTVar3 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pTVar3 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar3 + 0xc)" (( "(") (binary_expression "pTVar3 + 0xc" (identifier "pTVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pTVar3[0x10] = (Task)0x0;" (assignment_expression "pTVar3[0x10] = (Task)0x0" (subscript_expression "pTVar3[0x10]" (identifier "pTVar3") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(Task)0x0" (( "(") (type_descriptor "Task" (type_identifier "Task")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pTVar3[0x20] = (Task)0x0;" (assignment_expression "pTVar3[0x20] = (Task)0x0" (subscript_expression "pTVar3[0x20]" (identifier "pTVar3") ([ "[") (number_literal "0x20") (] "]")) (= "=") (cast_expression "(Task)0x0" (( "(") (type_descriptor "Task" (type_identifier "Task")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined **)pTVar3 = puVar23;" (assignment_expression "*(undefined **)pTVar3 = puVar23" (pointer_expression "*(undefined **)pTVar3" (* "*") (cast_expression "(undefined **)pTVar3" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pTVar3"))) (= "=") (identifier "puVar23")) (; ";")) (expression_statement "*(int *)(pTVar3 + 0x24) = iVar19;" (assignment_expression "*(int *)(pTVar3 + 0x24) = iVar19" (pointer_expression "*(int *)(pTVar3 + 0x24)" (* "*") (cast_expression "(int *)(pTVar3 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar3 + 0x24)" (( "(") (binary_expression "pTVar3 + 0x24" (identifier "pTVar3") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "iVar19")) (; ";")) (expression_statement "*(int **)(pTVar3 + 0x28) = unaff_s3;" (assignment_expression "*(int **)(pTVar3 + 0x28) = unaff_s3" (pointer_expression "*(int **)(pTVar3 + 0x28)" (* "*") (cast_expression "(int **)(pTVar3 + 0x28)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pTVar3 + 0x28)" (( "(") (binary_expression "pTVar3 + 0x28" (identifier "pTVar3") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "unaff_s3")) (; ";")) (labeled_statement "gold::Workqueue::queue(param_2,pTVar3);" (statement_identifier "gold") (: ":") (ERROR ":" (: ":")) (labeled_statement "Workqueue::queue(param_2,pTVar3);" (statement_identifier "Workqueue") (: ":") (ERROR ":" (: ":")) (expression_statement "queue(param_2,pTVar3);" (call_expression "queue(param_2,pTVar3)" (identifier "queue") (argument_list "(param_2,pTVar3)" (( "(") (identifier "param_2") (, ",") (identifier "pTVar3") () ")"))) (; ";")))) (expression_statement "piVar2 = (int *)param_3[1];" (assignment_expression "piVar2 = (int *)param_3[1]" (identifier "piVar2") (= "=") (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 "(piVar2 != piVar18)" (( "(") (binary_expression "piVar2 != piVar18" (identifier "piVar2") (!= "!=") (identifier "piVar18")) () ")")) (; ";")) (} "}"))) (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" (else "else") (compound_statement "{\n    (*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);\n  }" ({ "{") (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)\n              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8)" (( "(") (binary_expression "PTR_DAT_0043226c + 0x12f0" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x12f0")) (, ",") (number_literal "0xe7") (, ",") (binary_expression "PTR_DAT_0043226c + 0x13a8" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x13a8")) () ")"))) (; ";")) (} "}")))) (expression_statement "piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);" (assignment_expression "piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0)" (identifier "piVar18") (= "=") (cast_expression "(int *)(PTR_LAB_0043220c + 0x48a0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0043220c + 0x48a0)" (( "(") (binary_expression "PTR_LAB_0043220c + 0x48a0" (identifier "PTR_LAB_0043220c") (+ "+") (number_literal "0x48a0")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);" (call_expression "(*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004323c4)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004323c4" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004323c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004323c4"))) () ")")) (argument_list "(piVar18,0x97,PTR_DAT_0043226c + 0x1398)" (( "(") (identifier "piVar18") (, ",") (number_literal "0x97") (, ",") (binary_expression "PTR_DAT_0043226c + 0x1398" (identifier "PTR_DAT_0043226c") (+ "+") (number_literal "0x1398")) () ")"))) (; ";")) (expression_statement "iVar19 = 0x20;" (assignment_expression "iVar19 = 0x20" (identifier "iVar19") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "(*(code *)PTR_operator_delete_004323c0)(unaff_s1);" (call_expression "(*(code *)PTR_operator_delete_004323c0)(unaff_s1)" (parenthesized_expression "(*(code *)PTR_operator_delete_004323c0)" (( "(") (pointer_expression "*(code *)PTR_operator_delete_004323c0" (* "*") (cast_expression "(code *)PTR_operator_delete_004323c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_operator_delete_004323c0"))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "pcVar26 = FUN_0025e3dc;" (assignment_expression "pcVar26 = FUN_0025e3dc" (identifier "pcVar26") (= "=") (identifier "FUN_0025e3dc")) (; ";")) (expression_statement "piVar11 = piVar18;" (assignment_expression "piVar11 = piVar18" (identifier "piVar11") (= "=") (identifier "piVar18")) (; ";")) (expression_statement "puVar23 = PTR_FUN_00432258;" (assignment_expression "puVar23 = PTR_FUN_00432258" (identifier "puVar23") (= "=") (identifier "PTR_FUN_00432258")) (; ";")) (expression_statement "(*(code *)PTR_FUN_00432258)();" (call_expression "(*(code *)PTR_FUN_00432258)()" (parenthesized_expression "(*(code *)PTR_FUN_00432258)" (( "(") (pointer_expression "*(code *)PTR_FUN_00432258" (* "*") (cast_expression "(code *)PTR_FUN_00432258" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_00432258"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_68 = auStack_60;" (assignment_expression "puStack_68 = auStack_60" (identifier "puStack_68") (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "piStack_4c = piVar18;" (assignment_expression "piStack_4c = piVar18" (identifier "piStack_4c") (= "=") (identifier "piVar18")) (; ";")) (expression_statement "iStack_48 = unaff_s1;" (assignment_expression "iStack_48 = unaff_s1" (identifier "iStack_48") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "piStack_44 = unaff_s2;" (assignment_expression "piStack_44 = unaff_s2" (identifier "piStack_44") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "piStack_40 = unaff_s3;" (assignment_expression "piStack_40 = unaff_s3" (identifier "piStack_40") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pcStack_3c = pcVar26;" (assignment_expression "pcStack_3c = pcVar26" (identifier "pcStack_3c") (= "=") (identifier "pcVar26")) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0);" (call_expression "(**(code **)(puVar23 + 0x1d40ac))\n            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d40ac))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1d40ac)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1d40ac)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d40ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d40ac)" (( "(") (binary_expression "puVar23 + 0x1d40ac" (identifier "puVar23") (+ "+") (number_literal "0x1d40ac")) () ")"))))) () ")")) (argument_list "(&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317\n             ,0)" (( "(") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) (, ",") (binary_expression "*(int *)(puVar23 + 0x1d3e90) + 0x1308" (pointer_expression "*(int *)(puVar23 + 0x1d3e90)" (* "*") (cast_expression "(int *)(puVar23 + 0x1d3e90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1d3e90)" (( "(") (binary_expression "puVar23 + 0x1d3e90" (identifier "puVar23") (+ "+") (number_literal "0x1d3e90")) () ")")))) (+ "+") (number_literal "0x1308")) (, ",") (binary_expression "*(int *)(puVar23 + 0x1d3e90) + 0x1317" (pointer_expression "*(int *)(puVar23 + 0x1d3e90)" (* "*") (cast_expression "(int *)(puVar23 + 0x1d3e90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1d3e90)" (( "(") (binary_expression "puVar23 + 0x1d3e90" (identifier "puVar23") (+ "+") (number_literal "0x1d3e90")) () ")")))) (+ "+") (number_literal "0x1317")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "puVar21 = *(uint **)(iVar19 + 0x24);" (assignment_expression "puVar21 = *(uint **)(iVar19 + 0x24)" (identifier "puVar21") (= "=") (pointer_expression "*(uint **)(iVar19 + 0x24)" (* "*") (cast_expression "(uint **)(iVar19 + 0x24)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 0x24)" (( "(") (binary_expression "iVar19 + 0x24" (identifier "iVar19") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);" (assignment_expression "uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21)" (identifier "uVar4") (= "=") (call_expression "(**(code **)(puVar23 + 0x1d83a0))(puVar21)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d83a0))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1d83a0)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1d83a0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d83a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d83a0)" (( "(") (binary_expression "puVar23 + 0x1d83a0" (identifier "puVar23") (+ "+") (number_literal "0x1d83a0")) () ")"))))) () ")")) (argument_list "(puVar21)" (( "(") (identifier "puVar21") () ")")))) (; ";")) (if_statement "if (uVar4 <= 0x7fffffffU - iStack_64) {\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }" (if "if") (parenthesized_expression "(uVar4 <= 0x7fffffffU - iStack_64)" (( "(") (binary_expression "uVar4 <= 0x7fffffffU - iStack_64" (identifier "uVar4") (<= "<=") (binary_expression "0x7fffffffU - iStack_64" (number_literal "0x7fffffffU") (- "-") (identifier "iStack_64"))) () ")")) (compound_statement "{\n    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);\n    piVar2 = piVar18 + 2;\n    *piVar11 = (int)(piVar11 + 2);\n    if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }\n    piVar11[1] = piVar18[1];\n    *piVar18 = (int)piVar2;\n    piVar18[1] = 0;\n    *(undefined1 *)(piVar18 + 2) = 0;\n    if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }\n    return piVar11;\n  }" ({ "{") (expression_statement "piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);" (assignment_expression "piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" (identifier "piVar18") (= "=") (cast_expression "(int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d4874))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1d4874)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1d4874)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d4874)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d4874)" (( "(") (binary_expression "puVar23 + 0x1d4874" (identifier "puVar23") (+ "+") (number_literal "0x1d4874")) () ")"))))) () ")")) (argument_list "(&puStack_68,puVar21,uVar4)" (( "(") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68")) (, ",") (identifier "puVar21") (, ",") (identifier "uVar4") () ")"))))) (; ";")) (expression_statement "piVar2 = piVar18 + 2;" (assignment_expression "piVar2 = piVar18 + 2" (identifier "piVar2") (= "=") (binary_expression "piVar18 + 2" (identifier "piVar18") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*piVar11 = (int)(piVar11 + 2);" (assignment_expression "*piVar11 = (int)(piVar11 + 2)" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (cast_expression "(int)(piVar11 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar11 + 2)" (( "(") (binary_expression "piVar11 + 2" (identifier "piVar11") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((int *)*piVar18 == piVar2) {\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }\n    else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" (if "if") (parenthesized_expression "((int *)*piVar18 == piVar2)" (( "(") (binary_expression "(int *)*piVar18 == piVar2" (cast_expression "(int *)*piVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (== "==") (identifier "piVar2")) () ")")) (compound_statement "{\n      iVar15 = piVar18[3];\n      iVar14 = piVar18[4];\n      iVar19 = piVar18[5];\n      piVar11[2] = *piVar2;\n      piVar11[3] = iVar15;\n      piVar11[4] = iVar14;\n      piVar11[5] = iVar19;\n    }" ({ "{") (expression_statement "iVar15 = piVar18[3];" (assignment_expression "iVar15 = piVar18[3]" (identifier "iVar15") (= "=") (subscript_expression "piVar18[3]" (identifier "piVar18") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar14 = piVar18[4];" (assignment_expression "iVar14 = piVar18[4]" (identifier "iVar14") (= "=") (subscript_expression "piVar18[4]" (identifier "piVar18") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar19 = piVar18[5];" (assignment_expression "iVar19 = piVar18[5]" (identifier "iVar19") (= "=") (subscript_expression "piVar18[5]" (identifier "piVar18") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar11[2] = *piVar2;" (assignment_expression "piVar11[2] = *piVar2" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "piVar11[3] = iVar15;" (assignment_expression "piVar11[3] = iVar15" (subscript_expression "piVar11[3]" (identifier "piVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar15")) (; ";")) (expression_statement "piVar11[4] = iVar14;" (assignment_expression "piVar11[4] = iVar14" (subscript_expression "piVar11[4]" (identifier "piVar11") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "piVar11[5] = iVar19;" (assignment_expression "piVar11[5] = iVar19" (subscript_expression "piVar11[5]" (identifier "piVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar19")) (; ";")) (} "}")) (else_clause "else {\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" (else "else") (compound_statement "{\n      *piVar11 = *piVar18;\n      piVar11[2] = piVar18[2];\n    }" ({ "{") (expression_statement "*piVar11 = *piVar18;" (assignment_expression "*piVar11 = *piVar18" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) (; ";")) (expression_statement "piVar11[2] = piVar18[2];" (assignment_expression "piVar11[2] = piVar18[2]" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar18[2]" (identifier "piVar18") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}")))) (expression_statement "piVar11[1] = piVar18[1];" (assignment_expression "piVar11[1] = piVar18[1]" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*piVar18 = (int)piVar2;" (assignment_expression "*piVar18 = (int)piVar2" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2"))) (; ";")) (expression_statement "piVar18[1] = 0;" (assignment_expression "piVar18[1] = 0" (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar18 + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar18 + 2) = 0" (pointer_expression "*(undefined1 *)(piVar18 + 2)" (* "*") (cast_expression "(undefined1 *)(piVar18 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar18 + 2)" (( "(") (binary_expression "piVar18 + 2" (identifier "piVar18") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puStack_68 != auStack_60) {\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }" (if "if") (parenthesized_expression "(puStack_68 != auStack_60)" (( "(") (binary_expression "puStack_68 != auStack_60" (identifier "puStack_68") (!= "!=") (identifier "auStack_60")) () ")")) (compound_statement "{\n      (**(code **)(puVar23 + 0x1d3eb0))();\n    }" ({ "{") (expression_statement "(**(code **)(puVar23 + 0x1d3eb0))();" (call_expression "(**(code **)(puVar23 + 0x1d3eb0))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1d3eb0))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1d3eb0)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1d3eb0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d3eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d3eb0)" (( "(") (binary_expression "puVar23 + 0x1d3eb0" (identifier "puVar23") (+ "+") (number_literal "0x1d3eb0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return piVar11;" (return "return") (identifier "piVar11") (; ";")) (} "}"))) (expression_statement "iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;" (assignment_expression "iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240" (identifier "iVar19") (= "=") (binary_expression "*(int *)(puVar23 + 0x1d3fd8) + -0x6240" (pointer_expression "*(int *)(puVar23 + 0x1d3fd8)" (* "*") (cast_expression "(int *)(puVar23 + 0x1d3fd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar23 + 0x1d3fd8)" (( "(") (binary_expression "puVar23 + 0x1d3fd8" (identifier "puVar23") (+ "+") (number_literal "0x1d3fd8")) () ")")))) (+ "+") (number_literal "-0x6240"))) (; ";")) (expression_statement "(**(code **)(puVar23 + 0x1d40a4))();" (call_expression "(**(code **)(puVar23 + 0x1d40a4))()" (parenthesized_expression "(**(code **)(puVar23 + 0x1d40a4))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1d40a4)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1d40a4)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d40a4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d40a4)" (( "(") (binary_expression "puVar23 + 0x1d40a4" (identifier "puVar23") (+ "+") (number_literal "0x1d40a4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (puStack_68 != auStack_60) {\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }" (if "if") (parenthesized_expression "(puStack_68 != auStack_60)" (( "(") (binary_expression "puStack_68 != auStack_60" (identifier "puStack_68") (!= "!=") (identifier "auStack_60")) () ")")) (compound_statement "{\n    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);\n  }" ({ "{") (expression_statement "(**(code **)(puVar23 + 0x1d3eb0))(puStack_68);" (call_expression "(**(code **)(puVar23 + 0x1d3eb0))(puStack_68)" (parenthesized_expression "(**(code **)(puVar23 + 0x1d3eb0))" (( "(") (pointer_expression "**(code **)(puVar23 + 0x1d3eb0)" (* "*") (pointer_expression "*(code **)(puVar23 + 0x1d3eb0)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d3eb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d3eb0)" (( "(") (binary_expression "puVar23 + 0x1d3eb0" (identifier "puVar23") (+ "+") (number_literal "0x1d3eb0")) () ")"))))) () ")")) (argument_list "(puStack_68)" (( "(") (identifier "puStack_68") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar26 = *(code **)(puVar23 + 0x1d3e7c);" (assignment_expression "pcVar26 = *(code **)(puVar23 + 0x1d3e7c)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puVar23 + 0x1d3e7c)" (* "*") (cast_expression "(code **)(puVar23 + 0x1d3e7c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + 0x1d3e7c)" (( "(") (binary_expression "puVar23 + 0x1d3e7c" (identifier "puVar23") (+ "+") (number_literal "0x1d3e7c")) () ")"))))) (; ";")) (expression_statement "iVar14 = iVar19;" (assignment_expression "iVar14 = iVar19" (identifier "iVar14") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);" (assignment_expression "puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830)" (identifier "puVar20") (= "=") (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 "uVar22 = *(uint *)(iVar14 + 0x24);" (assignment_expression "uVar22 = *(uint *)(iVar14 + 0x24)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(iVar14 + 0x24)" (* "*") (cast_expression "(uint *)(iVar14 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x24)" (( "(") (binary_expression "iVar14 + 0x24" (identifier "iVar14") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puStack_90 = (undefined *)puVar24;" (assignment_expression "puStack_90 = (undefined *)puVar24" (identifier "puStack_90") (= "=") (cast_expression "(undefined *)puVar24" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar24"))) (; ";")) (expression_statement "iStack_a8 = iVar19;" (assignment_expression "iStack_a8 = iVar19" (identifier "iStack_a8") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "puStack_a4 = auStack_60;" (assignment_expression "puStack_a4 = auStack_60" (identifier "puStack_a4") (= "=") (identifier "auStack_60")) (; ";")) (expression_statement "ppuStack_a0 = &puStack_68;" (assignment_expression "ppuStack_a0 = &puStack_68" (identifier "ppuStack_a0") (= "=") (pointer_expression "&puStack_68" (& "&") (identifier "puStack_68"))) (; ";")) (expression_statement "puStack_9c = puVar21;" (assignment_expression "puStack_9c = puVar21" (identifier "puStack_9c") (= "=") (identifier "puVar21")) (; ";")) (expression_statement "pWStack_98 = unaff_s4;" (assignment_expression "pWStack_98 = unaff_s4" (identifier "pWStack_98") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "piStack_94 = unaff_s5;" (assignment_expression "piStack_94 = unaff_s5" (identifier "piStack_94") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "(**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);" (call_expression "(**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20)" (parenthesized_expression "(**(code **)(*(int *)*puVar20 + 8))" (( "(") (pointer_expression "**(code **)(*(int *)*puVar20 + 8)" (* "*") (pointer_expression "*(code **)(*(int *)*puVar20 + 8)" (* "*") (cast_expression "(code **)(*(int *)*puVar20 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar20 + 8)" (( "(") (binary_expression "*(int *)*puVar20 + 8" (pointer_expression "*(int *)*puVar20" (* "*") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "((int *)*puVar20)" (( "(") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) () ")"))) (; ";")) (expression_statement "uVar4 = puVar20[2];" (assignment_expression "uVar4 = puVar20[2]" (identifier "uVar4") (= "=") (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar4 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);" (assignment_expression "piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" (* "*") (cast_expression "(int **)(puVar20[1] + (uVar22 % uVar4) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20[1] + (uVar22 % uVar4) * 4)" (( "(") (binary_expression "puVar20[1] + (uVar22 % uVar4) * 4" (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "(uVar22 % uVar4) * 4" (parenthesized_expression "(uVar22 % uVar4)" (( "(") (binary_expression "uVar22 % uVar4" (identifier "uVar22") (% "%") (identifier "uVar4")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (piVar11 != (int *)0x0) {\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }" (if "if") (parenthesized_expression "(piVar11 != (int *)0x0)" (( "(") (binary_expression "piVar11 != (int *)0x0" (identifier "piVar11") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar10 = ((int *)*piVar11)[1];\n    piVar18 = (int *)*piVar11;\n    do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);\n  }" ({ "{") (expression_statement "uVar10 = ((int *)*piVar11)[1];" (assignment_expression "uVar10 = ((int *)*piVar11)[1]" (identifier "uVar10") (= "=") (subscript_expression "((int *)*piVar11)[1]" (parenthesized_expression "((int *)*piVar11)" (( "(") (cast_expression "(int *)*piVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar18 = (int *)*piVar11;" (assignment_expression "piVar18 = (int *)*piVar11" (identifier "piVar18") (= "=") (cast_expression "(int *)*piVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")))) (; ";")) (do_statement "do {\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    } while (uVar22 % uVar4 == uVar10 % uVar4);" (do "do") (compound_statement "{\n      piVar2 = piVar18;\n      if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }\n      piVar18 = (int *)*piVar2;\n      if (piVar18 == (int *)0x0) break;\n      uVar10 = piVar18[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11 = piVar2;\n    }" ({ "{") (expression_statement "piVar2 = piVar18;" (assignment_expression "piVar2 = piVar18" (identifier "piVar2") (= "=") (identifier "piVar18")) (; ";")) (if_statement "if (uVar22 == uVar10) {\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }" (if "if") (parenthesized_expression "(uVar22 == uVar10)" (( "(") (binary_expression "uVar22 == uVar10" (identifier "uVar22") (== "==") (identifier "uVar10")) () ")")) (compound_statement "{\n        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);\n        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }\n        goto LAB_0025e698;\n      }" ({ "{") (expression_statement "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);" (assignment_expression "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(*(int *)*puVar20 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*puVar20 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar20 + 0xc)" (( "(") (binary_expression "*(int *)*puVar20 + 0xc" (pointer_expression "*(int *)*puVar20" (* "*") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }" (if "if") (parenthesized_expression "((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0))" (( "(") (binary_expression "(*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)" (parenthesized_expression "(*piVar11 != 0)" (( "(") (binary_expression "*piVar11 != 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*piVar11 + 8) != 0)" (( "(") (binary_expression "*(int *)(*piVar11 + 8) != 0" (pointer_expression "*(int *)(*piVar11 + 8)" (* "*") (cast_expression "(int *)(*piVar11 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 8)" (( "(") (binary_expression "*piVar11 + 8" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          piVar11 = (int *)(*pcVar25)();\n          return piVar11;\n        }" ({ "{") (expression_statement "piVar11 = (int *)(*pcVar25)();" (assignment_expression "piVar11 = (int *)(*pcVar25)()" (identifier "piVar11") (= "=") (cast_expression "(int *)(*pcVar25)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar11;" (return "return") (identifier "piVar11") (; ";")) (} "}"))) (goto_statement "goto LAB_0025e698;" (goto "goto") (statement_identifier "LAB_0025e698") (; ";")) (} "}"))) (expression_statement "piVar18 = (int *)*piVar2;" (assignment_expression "piVar18 = (int *)*piVar2" (identifier "piVar18") (= "=") (cast_expression "(int *)*piVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar2" (* "*") (identifier "piVar2")))) (; ";")) (if_statement "if (piVar18 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar18 == (int *)0x0)" (( "(") (binary_expression "piVar18 == (int *)0x0" (identifier "piVar18") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = piVar18[1];" (assignment_expression "uVar10 = piVar18[1]" (identifier "uVar10") (= "=") (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar4 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "piVar11 = piVar2;" (assignment_expression "piVar11 = piVar2" (identifier "piVar11") (= "=") (identifier "piVar2")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar22 % uVar4 == uVar10 % uVar4)" (( "(") (binary_expression "uVar22 % uVar4 == uVar10 % uVar4" (binary_expression "uVar22 % uVar4" (identifier "uVar22") (% "%") (identifier "uVar4")) (== "==") (binary_expression "uVar10 % uVar4" (identifier "uVar10") (% "%") (identifier "uVar4"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);" (assignment_expression "pcVar25 = *(code **)(*(int *)*puVar20 + 0xc)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(*(int *)*puVar20 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*puVar20 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*puVar20 + 0xc)" (( "(") (binary_expression "*(int *)*puVar20 + 0xc" (pointer_expression "*(int *)*puVar20" (* "*") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (labeled_statement "LAB_0025e698:\n  (*pcVar25)();" (statement_identifier "LAB_0025e698") (: ":") (expression_statement "(*pcVar25)();" (call_expression "(*pcVar25)()" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);" (assignment_expression "puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20)" (identifier "puVar5") (= "=") (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_b4 = puVar5 + 7;" (assignment_expression "puStack_b4 = puVar5 + 7" (identifier "puStack_b4") (= "=") (binary_expression "puVar5 + 7" (identifier "puVar5") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "*puVar5 = uVar22;" (assignment_expression "*puVar5 = uVar22" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "iVar19 = *(int *)(pcVar26 + 0x1d3e44);" (assignment_expression "iVar19 = *(int *)(pcVar26 + 0x1d3e44)" (identifier "iVar19") (= "=") (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 "pcVar25 = *(code **)(pcVar26 + 0x1d8260);" (assignment_expression "pcVar25 = *(code **)(pcVar26 + 0x1d8260)" (identifier "pcVar25") (= "=") (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 "puVar5[1] = (uint)puStack_b4;" (assignment_expression "puVar5[1] = (uint)puStack_b4" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puStack_b4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_b4"))) (; ";")) (expression_statement "uVar4 = *(uint *)(iVar19 + -0x636c);" (assignment_expression "uVar4 = *(uint *)(iVar19 + -0x636c)" (identifier "uVar4") (= "=") (pointer_expression "*(uint *)(iVar19 + -0x636c)" (* "*") (cast_expression "(uint *)(iVar19 + -0x636c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + -0x636c)" (( "(") (binary_expression "iVar19 + -0x636c" (identifier "iVar19") (+ "+") (number_literal "-0x636c")) () ")"))))) (; ";")) (expression_statement "puVar5[4] = 0;" (assignment_expression "puVar5[4] = 0" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[2] = 1;" (assignment_expression "puVar5[2] = 1" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[6] = 0;" (assignment_expression "puVar5[6] = 0" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5[5] = uVar4;" (assignment_expression "puVar5[5] = uVar4" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar19 = (*pcVar25)(uVar22);" (assignment_expression "iVar19 = (*pcVar25)(uVar22)" (identifier "iVar19") (= "=") (call_expression "(*pcVar25)(uVar22)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(uVar22)" (( "(") (identifier "uVar22") () ")")))) (; ";")) (if_statement "if (iVar19 == 0) {\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();\n    if (*piVar11 == 2) goto LAB_0025e80c;\n    if (*piVar11 == 0x14) goto LAB_0025e80c;\n    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);\n    uVar4 = *puVar5;\n    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);\n    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);\n    piVar11 = (int *)*puVar20;\n    goto LAB_0025e810;\n  }" ({ "{") (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))()" (identifier "piVar11") (= "=") (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 (*piVar11 == 2) goto LAB_0025e80c;" (if "if") (parenthesized_expression "(*piVar11 == 2)" (( "(") (binary_expression "*piVar11 == 2" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0025e80c;" (goto "goto") (statement_identifier "LAB_0025e80c") (; ";"))) (if_statement "if (*piVar11 == 0x14) goto LAB_0025e80c;" (if "if") (parenthesized_expression "(*piVar11 == 0x14)" (( "(") (binary_expression "*piVar11 == 0x14" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (number_literal "0x14")) () ")")) (goto_statement "goto LAB_0025e80c;" (goto "goto") (statement_identifier "LAB_0025e80c") (; ";"))) (expression_statement "puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);" (assignment_expression "puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318)" (identifier "puVar21") (= "=") (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 "uVar4 = *puVar5;" (assignment_expression "uVar4 = *puVar5" (identifier "uVar4") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);" (assignment_expression "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11)" (identifier "uVar27") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*piVar11)" (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 "(*piVar11)" (( "(") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);" (call_expression "(**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27)" (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 "(puVar21,uVar4,uVar27)" (( "(") (identifier "puVar21") (, ",") (identifier "uVar4") (, ",") (identifier "uVar27") () ")"))) (; ";")) (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" (identifier "piVar11") (= "=") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (; ";")) (goto_statement "goto LAB_0025e810;" (goto "goto") (statement_identifier "LAB_0025e810") (; ";")) (} "}"))) (expression_statement "puStack_b8 = puVar5 + 3;" (assignment_expression "puStack_b8 = puVar5 + 3" (identifier "puStack_b8") (= "=") (binary_expression "puVar5 + 3" (identifier "puVar5") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar24 = &uStack_d0;" (assignment_expression "puVar24 = &uStack_d0" (identifier "puVar24") (= "=") (pointer_expression "&uStack_d0" (& "&") (identifier "uStack_d0"))) (; ";")) (expression_statement "pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);" (assignment_expression "pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58)" (identifier "pcStack_b0") (= "=") (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  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (statement_identifier "LAB_0025e720") (: ":") (expression_statement "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar19)" (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 "(iVar19)" (( "(") (identifier "iVar19") () ")")))) (; ";"))) (if_statement "if (iVar14 == 0) goto LAB_0025e7f8;" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025e7f8;" (goto "goto") (statement_identifier "LAB_0025e7f8") (; ";"))) (do_statement "do {\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    iVar14 = iVar14 + 0x13;\n    puStack_d8 = puVar24;\n    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);\n    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);\n    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);\n    if (puVar5[2] == 0) {\n      trap(7);\n    }\n    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);\n    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);\n    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;\n    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\n    if (*piVar11 == 0) goto LAB_0025e8e4;\n    while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }\n  }" ({ "{") (expression_statement "iVar14 = iVar14 + 0x13;" (assignment_expression "iVar14 = iVar14 + 0x13" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 0x13" (identifier "iVar14") (+ "+") (number_literal "0x13"))) (; ";")) (expression_statement "puStack_d8 = puVar24;" (assignment_expression "puStack_d8 = puVar24" (identifier "puStack_d8") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);" (assignment_expression "iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14)" (identifier "iVar15") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d820c))(iVar14)" (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 "(iVar14)" (( "(") (identifier "iVar14") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);" (call_expression "(**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,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_d8,iVar14,iVar14 + iVar15,0)" (( "(") (pointer_expression "&puStack_d8" (& "&") (identifier "puStack_d8")) (, ",") (identifier "iVar14") (, ",") (binary_expression "iVar14 + iVar15" (identifier "iVar14") (+ "+") (identifier "iVar15")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);" (assignment_expression "unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,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_d8,uStack_d4,0xc70f6907)" (( "(") (identifier "puStack_d8") (, ",") (identifier "uStack_d4") (, ",") (number_literal "0xc70f6907") () ")"))))) (; ";")) (if_statement "if (puVar5[2] == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(puVar5[2] == 0)" (( "(") (binary_expression "puVar5[2] == 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (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 "puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);" (assignment_expression "puVar21 = (uint *)((uint)unaff_s5 % puVar5[2])" (identifier "puVar21") (= "=") (cast_expression "(uint *)((uint)unaff_s5 % puVar5[2])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)unaff_s5 % puVar5[2])" (( "(") (binary_expression "(uint)unaff_s5 % puVar5[2]" (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5")) (% "%") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) () ")")))) (; ";")) (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" (identifier "piVar11") (= "=") (cast_expression "(int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,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 "(puVar5 + 1,puVar21,&puStack_d8,unaff_s5)" (( "(") (binary_expression "puVar5 + 1" (identifier "puVar5") (+ "+") (number_literal "1")) (, ",") (identifier "puVar21") (, ",") (pointer_expression "&puStack_d8" (& "&") (identifier "puStack_d8")) (, ",") (identifier "unaff_s5") () ")"))))) (; ";")) (if_statement "if (piVar11 == (int *)0x0) goto LAB_0025e8e0;" (if "if") (parenthesized_expression "(piVar11 == (int *)0x0)" (( "(") (binary_expression "piVar11 == (int *)0x0" (identifier "piVar11") (== "==") (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 "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc)" (identifier "pcVar25") (= "=") (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 (*piVar11 == 0) goto LAB_0025e8e4;" (if "if") (parenthesized_expression "(*piVar11 == 0)" (( "(") (binary_expression "*piVar11 == 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025e8e4;" (goto "goto") (statement_identifier "LAB_0025e8e4") (; ";"))) (while_statement "while( true ) {\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      if (puStack_d8 == puVar24) goto LAB_0025e720;\n      (**(code **)(pcVar26 + 0x1d3d1c))();\n      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);\n      if (iVar14 != 0) break;\nLAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);\n      if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }\nLAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);\n      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);\n      uVar4 = puVar20[2];\n      iVar14 = puVar20[1];\n      if (uVar4 == 0) {\n        trap(7);\n      }\n      piVar11[2] = (int)puVar5;\n      *piVar11 = 0;\n      piVar11[1] = uVar22;\n      puVar5 = (uint *)((uVar22 % uVar4) * 4);\n      piVar18 = *(int **)(iVar14 + (int)puVar5);\n      if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }\n      uVar10 = ((int *)*piVar18)[1];\n      piVar2 = (int *)*piVar18;\n      while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }\n      if (*piVar18 == 0) goto LAB_0025eb6c;\n      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);\n      (**(code **)(pcVar26 + 0x1d3e54))\n                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);\nLAB_0025e8e0:\n      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);\nLAB_0025e8e4:\n      puVar6 = (uint *)(*pcVar25)(0x20);\n      uVar4 = uStack_d4;\n      *puVar6 = 0;\n      puVar6[1] = (uint)(puVar6 + 3);\n      if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }\n      uStack_ac = puVar5[6];\n      uVar16 = puVar5[4];\n      uVar10 = puVar5[2];\n      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);\n      uStack_d4 = 0;\n      puVar6[2] = uVar4;\n      uStack_d0 = uStack_d0 & 0xffffff;\n      puStack_d8 = puVar24;\n      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);\n      uVar4 = uStack_bc;\n      if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }\n      puVar5[4] = puVar5[4] + 1;\n    }" ({ "{") (if_statement "if (puStack_d8 == puVar24) goto LAB_0025e720;" (if "if") (parenthesized_expression "(puStack_d8 == puVar24)" (( "(") (binary_expression "puStack_d8 == puVar24" (identifier "puStack_d8") (== "==") (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 "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d822c))(iVar19)" (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 "(iVar19)" (( "(") (identifier "iVar19") () ")")))) (; ";")) (if_statement "if (iVar14 != 0) break;" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0025e7f8:\n      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);" (statement_identifier "LAB_0025e7f8") (: ":") (expression_statement "iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);" (assignment_expression "iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19)" (identifier "iVar14") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d81c8))(iVar19)" (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 "(iVar19)" (( "(") (identifier "iVar19") () ")")))) (; ";"))) (if_statement "if (iVar14 == 0) {\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }\n      else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0025e80c:\n        piVar11 = (int *)*puVar20;\n      }" ({ "{") (labeled_statement "LAB_0025e80c:\n        piVar11 = (int *)*puVar20;" (statement_identifier "LAB_0025e80c") (: ":") (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" (identifier "piVar11") (= "=") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (; ";"))) (} "}")) (else_clause "else {\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" (else "else") (compound_statement "{\n        uVar4 = *puVar5;\n        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();\n        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);\n        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);\n        piVar11 = (int *)*puVar20;\n      }" ({ "{") (expression_statement "uVar4 = *puVar5;" (assignment_expression "uVar4 = *puVar5" (identifier "uVar4") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();" (assignment_expression "puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))()" (identifier "puVar9") (= "=") (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 "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);" (assignment_expression "uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9)" (identifier "uVar27") (= "=") (call_expression "(**(code **)(pcVar26 + 0x1d8374))(*puVar9)" (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 "(*puVar9)" (( "(") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);" (call_expression "(**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27)" (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,uVar4,uVar27)" (( "(") (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 "uVar4") (, ",") (identifier "uVar27") () ")"))) (; ";")) (expression_statement "piVar11 = (int *)*puVar20;" (assignment_expression "piVar11 = (int *)*puVar20" (identifier "piVar11") (= "=") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (; ";")) (} "}")))) (labeled_statement "LAB_0025e810:\n      (**(code **)(*piVar11 + 8))(piVar11);" (statement_identifier "LAB_0025e810") (: ":") (expression_statement "(**(code **)(*piVar11 + 8))(piVar11);" (call_expression "(**(code **)(*piVar11 + 8))(piVar11)" (parenthesized_expression "(**(code **)(*piVar11 + 8))" (( "(") (pointer_expression "**(code **)(*piVar11 + 8)" (* "*") (pointer_expression "*(code **)(*piVar11 + 8)" (* "*") (cast_expression "(code **)(*piVar11 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar11 + 8)" (( "(") (binary_expression "*piVar11 + 8" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(piVar11)" (( "(") (identifier "piVar11") () ")"))) (; ";"))) (expression_statement "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);" (assignment_expression "piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc)" (identifier "piVar11") (= "=") (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 "uVar4 = puVar20[2];" (assignment_expression "uVar4 = puVar20[2]" (identifier "uVar4") (= "=") (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar14 = puVar20[1];" (assignment_expression "iVar14 = puVar20[1]" (identifier "iVar14") (= "=") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar4 == 0) {\n        trap(7);\n      }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "piVar11[2] = (int)puVar5;" (assignment_expression "piVar11[2] = (int)puVar5" (subscript_expression "piVar11[2]" (identifier "piVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) (; ";")) (expression_statement "*piVar11 = 0;" (assignment_expression "*piVar11 = 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11[1] = uVar22;" (assignment_expression "piVar11[1] = uVar22" (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar22")) (; ";")) (expression_statement "puVar5 = (uint *)((uVar22 % uVar4) * 4);" (assignment_expression "puVar5 = (uint *)((uVar22 % uVar4) * 4)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((uVar22 % uVar4) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar22 % uVar4) * 4)" (( "(") (binary_expression "(uVar22 % uVar4) * 4" (parenthesized_expression "(uVar22 % uVar4)" (( "(") (binary_expression "uVar22 % uVar4" (identifier "uVar22") (% "%") (identifier "uVar4")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar18 = *(int **)(iVar14 + (int)puVar5);" (assignment_expression "piVar18 = *(int **)(iVar14 + (int)puVar5)" (identifier "piVar18") (= "=") (pointer_expression "*(int **)(iVar14 + (int)puVar5)" (* "*") (cast_expression "(int **)(iVar14 + (int)puVar5)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + (int)puVar5)" (( "(") (binary_expression "iVar14 + (int)puVar5" (identifier "iVar14") (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")"))))) (; ";")) (if_statement "if (piVar18 == (int *)0x0) {\nLAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }" (if "if") (parenthesized_expression "(piVar18 == (int *)0x0)" (( "(") (binary_expression "piVar18 == (int *)0x0" (identifier "piVar18") (== "==") (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_d8,puVar20 + 5,uVar4,puVar20[4],1);\n        uVar4 = uStack_d4;\n        if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }\n        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }\n        iVar19 = *(int *)*puVar20;\n        puVar20[4] = puVar20[4] + 1;\n        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);\n        return piVar11;\n      }" ({ "{") (labeled_statement "LAB_0025eb6c:\n        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);" (statement_identifier "LAB_0025eb6c") (: ":") (expression_statement "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);" (call_expression "(**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[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_d8,puVar20 + 5,uVar4,puVar20[4],1)" (( "(") (pointer_expression "&puStack_d8" (& "&") (identifier "puStack_d8")) (, ",") (binary_expression "puVar20 + 5" (identifier "puVar20") (+ "+") (number_literal "5")) (, ",") (identifier "uVar4") (, ",") (subscript_expression "puVar20[4]" (identifier "puVar20") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "uVar4 = uStack_d4;" (assignment_expression "uVar4 = uStack_d4" (identifier "uVar4") (= "=") (identifier "uStack_d4")) (; ";")) (if_statement "if (puStack_d8._0_1_ == '\0') {\n          puVar9 = (undefined4 *)puVar20[1];\n        }\n        else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" (if "if") (parenthesized_expression "(puStack_d8._0_1_ == '\0')" (( "(") (binary_expression "puStack_d8._0_1_ == '\0'" (field_expression "puStack_d8._0_1_" (identifier "puStack_d8") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          puVar9 = (undefined4 *)puVar20[1];\n        }" ({ "{") (expression_statement "puVar9 = (undefined4 *)puVar20[1];" (assignment_expression "puVar9 = (undefined4 *)puVar20[1]" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)puVar20[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" (else "else") (compound_statement "{\n          if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }\n          piVar18 = (int *)puVar20[3];\n          puVar20[3] = 0;\n          if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }\n          if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }\n          if (uVar4 == 0) {\n            trap(7);\n          }\n          puVar20[2] = uVar4;\n          puVar20[1] = puVar9;\n          puVar5 = (uint *)(uVar22 % uVar4 << 2);\n        }" ({ "{") (if_statement "if (uStack_d4 == 1) {\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }\n          else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" (if "if") (parenthesized_expression "(uStack_d4 == 1)" (( "(") (binary_expression "uStack_d4 == 1" (identifier "uStack_d4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            puVar9 = puVar20 + 7;\n            puVar20[7] = 0;\n          }" ({ "{") (expression_statement "puVar9 = puVar20 + 7;" (assignment_expression "puVar9 = puVar20 + 7" (identifier "puVar9") (= "=") (binary_expression "puVar20 + 7" (identifier "puVar20") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "puVar20[7] = 0;" (assignment_expression "puVar20[7] = 0" (subscript_expression "puVar20[7]" (identifier "puVar20") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" (else "else") (compound_statement "{\n            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);\n          }" ({ "{") (expression_statement "puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);" (assignment_expression "puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)FUN_0025e1a8(uStack_d4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0025e1a8(uStack_d4)" (identifier "FUN_0025e1a8") (argument_list "(uStack_d4)" (( "(") (identifier "uStack_d4") () ")"))))) (; ";")) (} "}")))) (expression_statement "piVar18 = (int *)puVar20[3];" (assignment_expression "piVar18 = (int *)puVar20[3]" (identifier "piVar18") (= "=") (cast_expression "(int *)puVar20[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar20[3] = 0;" (assignment_expression "puVar20[3] = 0" (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar18 != (int *)0x0) {\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }" (if "if") (parenthesized_expression "(piVar18 != (int *)0x0)" (( "(") (binary_expression "piVar18 != (int *)0x0" (identifier "piVar18") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar10 = 0;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);\n          }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            } while (piVar2 != (int *)0x0);" (do "do") (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = (uint)piVar18[1] % uVar4;\n              puVar13 = puVar9 + uVar16;\n              piVar2 = (int *)*piVar18;\n              if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }\n              piVar18 = piVar2;\n              uVar10 = uVar16;\n            }" ({ "{") (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "uVar16 = (uint)piVar18[1] % uVar4;" (assignment_expression "uVar16 = (uint)piVar18[1] % uVar4" (identifier "uVar16") (= "=") (binary_expression "(uint)piVar18[1] % uVar4" (cast_expression "(uint)piVar18[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar18[1]" (identifier "piVar18") ([ "[") (number_literal "1") (] "]"))) (% "%") (identifier "uVar4"))) (; ";")) (expression_statement "puVar13 = puVar9 + uVar16;" (assignment_expression "puVar13 = puVar9 + uVar16" (identifier "puVar13") (= "=") (binary_expression "puVar9 + uVar16" (identifier "puVar9") (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "piVar2 = (int *)*piVar18;" (assignment_expression "piVar2 = (int *)*piVar18" (identifier "piVar2") (= "=") (cast_expression "(int *)*piVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18")))) (; ";")) (if_statement "if ((int *)*puVar13 == (int *)0x0) {\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }\n              else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" (if "if") (parenthesized_expression "((int *)*puVar13 == (int *)0x0)" (( "(") (binary_expression "(int *)*puVar13 == (int *)0x0" (cast_expression "(int *)*puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                *piVar18 = puVar20[3];\n                puVar20[3] = piVar18;\n                *puVar13 = puVar20 + 3;\n                if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }\n              }" ({ "{") (expression_statement "*piVar18 = puVar20[3];" (assignment_expression "*piVar18 = puVar20[3]" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar20[3] = piVar18;" (assignment_expression "puVar20[3] = piVar18" (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar18")) (; ";")) (expression_statement "*puVar13 = puVar20 + 3;" (assignment_expression "*puVar13 = puVar20 + 3" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (binary_expression "puVar20 + 3" (identifier "puVar20") (+ "+") (number_literal "3"))) (; ";")) (if_statement "if (*piVar18 != 0) {\n                  puVar9[uVar10] = piVar18;\n                }" (if "if") (parenthesized_expression "(*piVar18 != 0)" (( "(") (binary_expression "*piVar18 != 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  puVar9[uVar10] = piVar18;\n                }" ({ "{") (expression_statement "puVar9[uVar10] = piVar18;" (assignment_expression "puVar9[uVar10] = piVar18" (subscript_expression "puVar9[uVar10]" (identifier "puVar9") ([ "[") (identifier "uVar10") (] "]")) (= "=") (identifier "piVar18")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" (else "else") (compound_statement "{\n                *piVar18 = *(int *)*puVar13;\n                *(int **)*puVar13 = piVar18;\n                uVar16 = uVar10;\n              }" ({ "{") (expression_statement "*piVar18 = *(int *)*puVar13;" (assignment_expression "*piVar18 = *(int *)*puVar13" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (= "=") (pointer_expression "*(int *)*puVar13" (* "*") (cast_expression "(int *)*puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))))) (; ";")) (expression_statement "*(int **)*puVar13 = piVar18;" (assignment_expression "*(int **)*puVar13 = piVar18" (pointer_expression "*(int **)*puVar13" (* "*") (cast_expression "(int **)*puVar13" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (= "=") (identifier "piVar18")) (; ";")) (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" (identifier "uVar16") (= "=") (identifier "uVar10")) (; ";")) (} "}")))) (expression_statement "piVar18 = piVar2;" (assignment_expression "piVar18 = piVar2" (identifier "piVar18") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" (identifier "uVar10") (= "=") (identifier "uVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((undefined4 *)puVar20[1] != puVar20 + 7) {\n            (**(code **)(pcVar26 + 0x1d3d1c))();\n          }" (if "if") (parenthesized_expression "((undefined4 *)puVar20[1] != puVar20 + 7)" (( "(") (binary_expression "(undefined4 *)puVar20[1] != puVar20 + 7" (cast_expression "(undefined4 *)puVar20[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (binary_expression "puVar20 + 7" (identifier "puVar20") (+ "+") (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 (uVar4 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "puVar20[2] = uVar4;" (assignment_expression "puVar20[2] = uVar4" (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar20[1] = puVar9;" (assignment_expression "puVar20[1] = puVar9" (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar5 = (uint *)(uVar22 % uVar4 << 2);" (assignment_expression "puVar5 = (uint *)(uVar22 % uVar4 << 2)" (identifier "puVar5") (= "=") (cast_expression "(uint *)(uVar22 % uVar4 << 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 % uVar4 << 2)" (( "(") (binary_expression "uVar22 % uVar4 << 2" (binary_expression "uVar22 % uVar4" (identifier "uVar22") (% "%") (identifier "uVar4")) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (} "}")))) (if_statement "if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }\n        else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" (if "if") (parenthesized_expression "(*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0)" (( "(") (binary_expression "*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0" (pointer_expression "*(int **)((int)puVar9 + (int)puVar5)" (* "*") (cast_expression "(int **)((int)puVar9 + (int)puVar5)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar9 + (int)puVar5)" (( "(") (binary_expression "(int)puVar9 + (int)puVar5" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")")))) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *piVar11 = puVar20[3];\n          puVar20[3] = piVar11;\n          if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }\n          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;\n        }" ({ "{") (expression_statement "*piVar11 = puVar20[3];" (assignment_expression "*piVar11 = puVar20[3]" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar20[3] = piVar11;" (assignment_expression "puVar20[3] = piVar11" (subscript_expression "puVar20[3]" (identifier "puVar20") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar11")) (; ";")) (if_statement "if (*piVar11 == 0) {\n            iVar19 = puVar20[1];\n          }\n          else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" (if "if") (parenthesized_expression "(*piVar11 == 0)" (( "(") (binary_expression "*piVar11 == 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar19 = puVar20[1];\n          }" ({ "{") (expression_statement "iVar19 = puVar20[1];" (assignment_expression "iVar19 = puVar20[1]" (identifier "iVar19") (= "=") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" (else "else") (compound_statement "{\n            iVar19 = puVar20[1];\n            if (puVar20[2] == 0) {\n              trap(7);\n            }\n            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;\n          }" ({ "{") (expression_statement "iVar19 = puVar20[1];" (assignment_expression "iVar19 = puVar20[1]" (identifier "iVar19") (= "=") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (puVar20[2] == 0) {\n              trap(7);\n            }" (if "if") (parenthesized_expression "(puVar20[2] == 0)" (( "(") (binary_expression "puVar20[2] == 0" (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (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 **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;" (assignment_expression "*(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11" (pointer_expression "*(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" (* "*") (cast_expression "(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4)" (( "(") (binary_expression "iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4" (identifier "iVar19") (+ "+") (binary_expression "(*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4" (parenthesized_expression "(*(uint *)(*piVar11 + 4) % (uint)puVar20[2])" (( "(") (binary_expression "*(uint *)(*piVar11 + 4) % (uint)puVar20[2]" (pointer_expression "*(uint *)(*piVar11 + 4)" (* "*") (cast_expression "(uint *)(*piVar11 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar11 + 4)" (( "(") (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "4")) () ")")))) (% "%") (cast_expression "(uint)puVar20[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]")))) () ")")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "piVar11")) (; ";")) (} "}")))) (expression_statement "*(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;" (assignment_expression "*(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3" (pointer_expression "*(undefined4 **)(iVar19 + (int)puVar5)" (* "*") (cast_expression "(undefined4 **)(iVar19 + (int)puVar5)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + (int)puVar5)" (( "(") (binary_expression "iVar19 + (int)puVar5" (identifier "iVar19") (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")")))) (= "=") (binary_expression "puVar20 + 3" (identifier "puVar20") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" (else "else") (compound_statement "{\n          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);\n          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;\n        }" ({ "{") (expression_statement "*piVar11 = **(int **)((int)puVar9 + (int)puVar5);" (assignment_expression "*piVar11 = **(int **)((int)puVar9 + (int)puVar5)" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "**(int **)((int)puVar9 + (int)puVar5)" (* "*") (pointer_expression "*(int **)((int)puVar9 + (int)puVar5)" (* "*") (cast_expression "(int **)((int)puVar9 + (int)puVar5)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)puVar9 + (int)puVar5)" (( "(") (binary_expression "(int)puVar9 + (int)puVar5" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")")))))) (; ";")) (expression_statement "**(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;" (assignment_expression "**(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11" (pointer_expression "**(undefined4 **)(puVar20[1] + (int)puVar5)" (* "*") (pointer_expression "*(undefined4 **)(puVar20[1] + (int)puVar5)" (* "*") (cast_expression "(undefined4 **)(puVar20[1] + (int)puVar5)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20[1] + (int)puVar5)" (( "(") (binary_expression "puVar20[1] + (int)puVar5" (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5"))) () ")"))))) (= "=") (identifier "piVar11")) (; ";")) (} "}")))) (expression_statement "iVar19 = *(int *)*puVar20;" (assignment_expression "iVar19 = *(int *)*puVar20" (identifier "iVar19") (= "=") (pointer_expression "*(int *)*puVar20" (* "*") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))))) (; ";")) (expression_statement "puVar20[4] = puVar20[4] + 1;" (assignment_expression "puVar20[4] = puVar20[4] + 1" (subscript_expression "puVar20[4]" (identifier "puVar20") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar20[4] + 1" (subscript_expression "puVar20[4]" (identifier "puVar20") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);" (assignment_expression "piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20)" (identifier "piVar11") (= "=") (cast_expression "(int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(iVar19 + 0xc))((int *)*puVar20)" (parenthesized_expression "(**(code **)(iVar19 + 0xc))" (( "(") (pointer_expression "**(code **)(iVar19 + 0xc)" (* "*") (pointer_expression "*(code **)(iVar19 + 0xc)" (* "*") (cast_expression "(code **)(iVar19 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar19 + 0xc)" (( "(") (binary_expression "iVar19 + 0xc" (identifier "iVar19") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)*puVar20)" (( "(") (cast_expression "(int *)*puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) () ")"))))) (; ";")) (return_statement "return piVar11;" (return "return") (identifier "piVar11") (; ";")) (} "}"))) (expression_statement "uVar10 = ((int *)*piVar18)[1];" (assignment_expression "uVar10 = ((int *)*piVar18)[1]" (identifier "uVar10") (= "=") (subscript_expression "((int *)*piVar18)[1]" (parenthesized_expression "((int *)*piVar18)" (( "(") (cast_expression "(int *)*piVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar2 = (int *)*piVar18;" (assignment_expression "piVar2 = (int *)*piVar18" (identifier "piVar2") (= "=") (cast_expression "(int *)*piVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar18" (* "*") (identifier "piVar18")))) (; ";")) (while_statement "while (piVar12 = piVar2, uVar22 != uVar10) {\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }" (while "while") (parenthesized_expression "(piVar12 = piVar2, uVar22 != uVar10)" (( "(") (comma_expression "piVar12 = piVar2, uVar22 != uVar10" (assignment_expression "piVar12 = piVar2" (identifier "piVar12") (= "=") (identifier "piVar2")) (, ",") (binary_expression "uVar22 != uVar10" (identifier "uVar22") (!= "!=") (identifier "uVar10"))) () ")")) (compound_statement "{\n        piVar2 = (int *)*piVar12;\n        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;\n        uVar10 = piVar2[1];\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        piVar18 = piVar12;\n        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;\n      }" ({ "{") (expression_statement "piVar2 = (int *)*piVar12;" (assignment_expression "piVar2 = (int *)*piVar12" (identifier "piVar2") (= "=") (cast_expression "(int *)*piVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar12" (* "*") (identifier "piVar12")))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) goto LAB_0025eb6c;" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (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 "uVar10 = piVar2[1];" (assignment_expression "uVar10 = piVar2[1]" (identifier "uVar10") (= "=") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar4 == 0) {\n          trap(7);\n        }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "piVar18 = piVar12;" (assignment_expression "piVar18 = piVar12" (identifier "piVar18") (= "=") (identifier "piVar12")) (; ";")) (if_statement "if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;" (if "if") (parenthesized_expression "(uVar22 % uVar4 != uVar10 % uVar4)" (( "(") (binary_expression "uVar22 % uVar4 != uVar10 % uVar4" (binary_expression "uVar22 % uVar4" (identifier "uVar22") (% "%") (identifier "uVar4")) (!= "!=") (binary_expression "uVar10 % uVar4" (identifier "uVar10") (% "%") (identifier "uVar4"))) () ")")) (goto_statement "goto LAB_0025eb6c;" (goto "goto") (statement_identifier "LAB_0025eb6c") (; ";"))) (} "}"))) (if_statement "if (*piVar18 == 0) goto LAB_0025eb6c;" (if "if") (parenthesized_expression "(*piVar18 == 0)" (( "(") (binary_expression "*piVar18 == 0" (pointer_expression "*piVar18" (* "*") (identifier "piVar18")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025eb6c;" (goto "goto") (statement_identifier "LAB_0025eb6c") (; ";"))) (expression_statement "(**(code **)(pcVar26 + 0x1d3d1c))(piVar11);" (call_expression "(**(code **)(pcVar26 + 0x1d3d1c))(piVar11)" (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 "(piVar11)" (( "(") (identifier "piVar11") () ")"))) (; ";")) (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      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (statement_identifier "LAB_0025e8e0") (: ":") (expression_statement "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);" (assignment_expression "pcVar25 = *(code **)(pcVar26 + 0x1d3dcc)" (identifier "pcVar25") (= "=") (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      puVar6 = (uint *)(*pcVar25)(0x20);" (statement_identifier "LAB_0025e8e4") (: ":") (expression_statement "puVar6 = (uint *)(*pcVar25)(0x20);" (assignment_expression "puVar6 = (uint *)(*pcVar25)(0x20)" (identifier "puVar6") (= "=") (cast_expression "(uint *)(*pcVar25)(0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar25)(0x20)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";"))) (expression_statement "uVar4 = uStack_d4;" (assignment_expression "uVar4 = uStack_d4" (identifier "uVar4") (= "=") (identifier "uStack_d4")) (; ";")) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[1] = (uint)(puVar6 + 3);" (assignment_expression "puVar6[1] = (uint)(puVar6 + 3)" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (call_expression "(uint)(puVar6 + 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar6 + 3)" (( "(") (binary_expression "puVar6 + 3" (identifier "puVar6") (+ "+") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (puStack_d8 == puVar24) {\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }\n      else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" (if "if") (parenthesized_expression "(puStack_d8 == puVar24)" (( "(") (binary_expression "puStack_d8 == puVar24" (identifier "puStack_d8") (== "==") (identifier "puVar24")) () ")")) (compound_statement "{\n        puVar6[3] = uStack_d0;\n        puVar6[4] = uStack_cc;\n        puVar6[5] = uStack_c8;\n        puVar6[6] = uStack_c4;\n      }" ({ "{") (expression_statement "puVar6[3] = uStack_d0;" (assignment_expression "puVar6[3] = uStack_d0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_d0")) (; ";")) (expression_statement "puVar6[4] = uStack_cc;" (assignment_expression "puVar6[4] = uStack_cc" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uStack_cc")) (; ";")) (expression_statement "puVar6[5] = uStack_c8;" (assignment_expression "puVar6[5] = uStack_c8" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uStack_c8")) (; ";")) (expression_statement "puVar6[6] = uStack_c4;" (assignment_expression "puVar6[6] = uStack_c4" (subscript_expression "puVar6[6]" (identifier "puVar6") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uStack_c4")) (; ";")) (} "}")) (else_clause "else {\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" (else "else") (compound_statement "{\n        puVar6[1] = (uint)puStack_d8;\n        puVar6[3] = uStack_d0;\n      }" ({ "{") (expression_statement "puVar6[1] = (uint)puStack_d8;" (assignment_expression "puVar6[1] = (uint)puStack_d8" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puStack_d8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_d8"))) (; ";")) (expression_statement "puVar6[3] = uStack_d0;" (assignment_expression "puVar6[3] = uStack_d0" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uStack_d0")) (; ";")) (} "}")))) (expression_statement "uStack_ac = puVar5[6];" (assignment_expression "uStack_ac = puVar5[6]" (identifier "uStack_ac") (= "=") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar16 = puVar5[4];" (assignment_expression "uVar16 = puVar5[4]" (identifier "uVar16") (= "=") (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar5[2];" (assignment_expression "uVar10 = puVar5[2]" (identifier "uVar10") (= "=") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar25 = *(code **)(pcVar26 + 0x1d45c0);" (assignment_expression "pcVar25 = *(code **)(pcVar26 + 0x1d45c0)" (identifier "pcVar25") (= "=") (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_d4 = 0;" (assignment_expression "uStack_d4 = 0" (identifier "uStack_d4") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[2] = uVar4;" (assignment_expression "puVar6[2] = uVar4" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uStack_d0 = uStack_d0 & 0xffffff;" (assignment_expression "uStack_d0 = uStack_d0 & 0xffffff" (identifier "uStack_d0") (= "=") (binary_expression "uStack_d0 & 0xffffff" (identifier "uStack_d0") (& "&") (number_literal "0xffffff"))) (; ";")) (expression_statement "puStack_d8 = puVar24;" (assignment_expression "puStack_d8 = puVar24" (identifier "puStack_d8") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "(*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);" (call_expression "(*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(acStack_c0,puVar5 + 5,uVar10,uVar16,1)" (( "(") (identifier "acStack_c0") (, ",") (binary_expression "puVar5 + 5" (identifier "puVar5") (+ "+") (number_literal "5")) (, ",") (identifier "uVar10") (, ",") (identifier "uVar16") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "uVar4 = uStack_bc;" (assignment_expression "uVar4 = uStack_bc" (identifier "uVar4") (= "=") (identifier "uStack_bc")) (; ";")) (if_statement "if (acStack_c0[0] == '\0') {\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }\n      else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" (if "if") (parenthesized_expression "(acStack_c0[0] == '\0')" (( "(") (binary_expression "acStack_c0[0] == '\0'" (subscript_expression "acStack_c0[0]" (identifier "acStack_c0") ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        puVar7 = (uint *)puVar5[1];\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (int)puVar21;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;\nLAB_0025ea84:\n        uVar4 = puVar5[3];\n        puVar5[3] = (uint)puVar6;\n        *puVar6 = uVar4;\n        if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }\n        *puVar21 = (uint)puStack_b8;\n      }" ({ "{") (expression_statement "puVar7 = (uint *)puVar5[1];" (assignment_expression "puVar7 = (uint *)puVar5[1]" (identifier "puVar7") (= "=") (cast_expression "(uint *)puVar5[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar6[7] = (uint)unaff_s5;" (assignment_expression "puVar6[7] = (uint)unaff_s5" (subscript_expression "puVar6[7]" (identifier "puVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5"))) (; ";")) (expression_statement "puVar21 = puVar7 + (int)puVar21;" (assignment_expression "puVar21 = puVar7 + (int)puVar21" (identifier "puVar21") (= "=") (binary_expression "puVar7 + (int)puVar21" (identifier "puVar7") (+ "+") (cast_expression "(int)puVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar21")))) (; ";")) (expression_statement "puVar8 = (uint *)*puVar21;" (assignment_expression "puVar8 = (uint *)*puVar21" (identifier "puVar8") (= "=") (cast_expression "(uint *)*puVar21" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (if_statement "if (puVar8 != (uint *)0x0) goto LAB_0025ea48;" (if "if") (parenthesized_expression "(puVar8 != (uint *)0x0)" (( "(") (binary_expression "puVar8 != (uint *)0x0" (identifier "puVar8") (!= "!=") (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        uVar4 = puVar5[3];" (statement_identifier "LAB_0025ea84") (: ":") (expression_statement "uVar4 = puVar5[3];" (assignment_expression "uVar4 = puVar5[3]" (identifier "uVar4") (= "=") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (expression_statement "puVar5[3] = (uint)puVar6;" (assignment_expression "puVar5[3] = (uint)puVar6" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)puVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar6"))) (; ";")) (expression_statement "*puVar6 = uVar4;" (assignment_expression "*puVar6 = uVar4" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (uVar4 != 0) {\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (puVar5[2] == 0) {\n            trap(7);\n          }\n          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;\n        }" ({ "{") (if_statement "if (puVar5[2] == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(puVar5[2] == 0)" (( "(") (binary_expression "puVar5[2] == 0" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (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 "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;" (assignment_expression "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6" (subscript_expression "puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]]" (identifier "puVar7") ([ "[") (binary_expression "*(uint *)(uVar4 + 0x1c) % puVar5[2]" (pointer_expression "*(uint *)(uVar4 + 0x1c)" (* "*") (cast_expression "(uint *)(uVar4 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar4 + 0x1c)" (( "(") (binary_expression "uVar4 + 0x1c" (identifier "uVar4") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (] "]")) (= "=") (cast_expression "(uint)puVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar6"))) (; ";")) (} "}"))) (expression_statement "*puVar21 = (uint)puStack_b8;" (assignment_expression "*puVar21 = (uint)puStack_b8" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (cast_expression "(uint)puStack_b8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_b8"))) (; ";")) (} "}")) (else_clause "else {\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" (else "else") (compound_statement "{\n        if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }\n        puVar21 = (uint *)puVar5[3];\n        puVar5[3] = 0;\n        if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }\nLAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }\n        if (uVar4 == 0) {\n          trap(7);\n        }\n        puVar5[2] = uVar4;\n        puVar5[1] = (uint)puVar7;\n        puVar6[7] = (uint)unaff_s5;\n        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;\n        puVar8 = (uint *)*puVar21;\n        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;\nLAB_0025ea48:\n        *puVar6 = *puVar8;\n        *(uint **)*puVar21 = puVar6;\n      }" ({ "{") (if_statement "if (uStack_bc == 1) {\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }\n        else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" (if "if") (parenthesized_expression "(uStack_bc == 1)" (( "(") (binary_expression "uStack_bc == 1" (identifier "uStack_bc") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          puVar5[7] = 0;\n          puVar7 = puStack_b4;\n        }" ({ "{") (expression_statement "puVar5[7] = 0;" (assignment_expression "puVar5[7] = 0" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar7 = puStack_b4;" (assignment_expression "puVar7 = puStack_b4" (identifier "puVar7") (= "=") (identifier "puStack_b4")) (; ";")) (} "}")) (else_clause "else {\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" (else "else") (compound_statement "{\n          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);\n        }" ({ "{") (expression_statement "puVar7 = (uint *)(*pcStack_b0)(uStack_bc);" (assignment_expression "puVar7 = (uint *)(*pcStack_b0)(uStack_bc)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(*pcStack_b0)(uStack_bc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcStack_b0)(uStack_bc)" (parenthesized_expression "(*pcStack_b0)" (( "(") (pointer_expression "*pcStack_b0" (* "*") (identifier "pcStack_b0")) () ")")) (argument_list "(uStack_bc)" (( "(") (identifier "uStack_bc") () ")"))))) (; ";")) (} "}")))) (expression_statement "puVar21 = (uint *)puVar5[3];" (assignment_expression "puVar21 = (uint *)puVar5[3]" (identifier "puVar21") (= "=") (cast_expression "(uint *)puVar5[3]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar5[3] = 0;" (assignment_expression "puVar5[3] = 0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar21 != (uint *)0x0) {\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }" (if "if") (parenthesized_expression "(puVar21 != (uint *)0x0)" (( "(") (binary_expression "puVar21 != (uint *)0x0" (identifier "puVar21") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar10 = 0;\n          do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);\n        }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          } while (puVar17 != (uint *)0x0);" (do "do") (compound_statement "{\n            while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }\n            *puVar21 = puVar5[3];\n            puVar5[3] = (uint)puVar21;\n            *puVar8 = (uint)puStack_b8;\n            if (*puVar21 == 0) goto LAB_0025e9a0;\n            puVar7[uVar10] = (uint)puVar21;\n            puVar21 = puVar17;\n            uVar10 = uVar16;\n          }" ({ "{") (while_statement "while( true ) {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar16 = puVar21[7] % uVar4;\n              puVar8 = puVar7 + uVar16;\n              puVar17 = (uint *)*puVar21;\n              if ((uint *)*puVar8 == (uint *)0x0) break;\n              *puVar21 = *(uint *)*puVar8;\n              *(uint **)*puVar8 = puVar21;\n              uVar16 = uVar10;\nLAB_0025e9a0:\n              puVar21 = puVar17;\n              uVar10 = uVar16;\n              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;\n            }" ({ "{") (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "uVar16 = puVar21[7] % uVar4;" (assignment_expression "uVar16 = puVar21[7] % uVar4" (identifier "uVar16") (= "=") (binary_expression "puVar21[7] % uVar4" (subscript_expression "puVar21[7]" (identifier "puVar21") ([ "[") (number_literal "7") (] "]")) (% "%") (identifier "uVar4"))) (; ";")) (expression_statement "puVar8 = puVar7 + uVar16;" (assignment_expression "puVar8 = puVar7 + uVar16" (identifier "puVar8") (= "=") (binary_expression "puVar7 + uVar16" (identifier "puVar7") (+ "+") (identifier "uVar16"))) (; ";")) (expression_statement "puVar17 = (uint *)*puVar21;" (assignment_expression "puVar17 = (uint *)*puVar21" (identifier "puVar17") (= "=") (cast_expression "(uint *)*puVar21" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (if_statement "if ((uint *)*puVar8 == (uint *)0x0) break;" (if "if") (parenthesized_expression "((uint *)*puVar8 == (uint *)0x0)" (( "(") (binary_expression "(uint *)*puVar8 == (uint *)0x0" (cast_expression "(uint *)*puVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*puVar21 = *(uint *)*puVar8;" (assignment_expression "*puVar21 = *(uint *)*puVar8" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (pointer_expression "*(uint *)*puVar8" (* "*") (cast_expression "(uint *)*puVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))))) (; ";")) (expression_statement "*(uint **)*puVar8 = puVar21;" (assignment_expression "*(uint **)*puVar8 = puVar21" (pointer_expression "*(uint **)*puVar8" (* "*") (cast_expression "(uint **)*puVar8" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (= "=") (identifier "puVar21")) (; ";")) (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" (identifier "uVar16") (= "=") (identifier "uVar10")) (; ";")) (labeled_statement "LAB_0025e9a0:\n              puVar21 = puVar17;" (statement_identifier "LAB_0025e9a0") (: ":") (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" (identifier "puVar21") (= "=") (identifier "puVar17")) (; ";"))) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" (identifier "uVar10") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (puVar17 == (uint *)0x0) goto LAB_0025ea00;" (if "if") (parenthesized_expression "(puVar17 == (uint *)0x0)" (( "(") (binary_expression "puVar17 == (uint *)0x0" (identifier "puVar17") (== "==") (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 "*puVar21 = puVar5[3];" (assignment_expression "*puVar21 = puVar5[3]" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (= "=") (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar5[3] = (uint)puVar21;" (assignment_expression "puVar5[3] = (uint)puVar21" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)puVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar21"))) (; ";")) (expression_statement "*puVar8 = (uint)puStack_b8;" (assignment_expression "*puVar8 = (uint)puStack_b8" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (cast_expression "(uint)puStack_b8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puStack_b8"))) (; ";")) (if_statement "if (*puVar21 == 0) goto LAB_0025e9a0;" (if "if") (parenthesized_expression "(*puVar21 == 0)" (( "(") (binary_expression "*puVar21 == 0" (pointer_expression "*puVar21" (* "*") (identifier "puVar21")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0025e9a0;" (goto "goto") (statement_identifier "LAB_0025e9a0") (; ";"))) (expression_statement "puVar7[uVar10] = (uint)puVar21;" (assignment_expression "puVar7[uVar10] = (uint)puVar21" (subscript_expression "puVar7[uVar10]" (identifier "puVar7") ([ "[") (identifier "uVar10") (] "]")) (= "=") (cast_expression "(uint)puVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar21"))) (; ";")) (expression_statement "puVar21 = puVar17;" (assignment_expression "puVar21 = puVar17" (identifier "puVar21") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "uVar10 = uVar16;" (assignment_expression "uVar10 = uVar16" (identifier "uVar10") (= "=") (identifier "uVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar17 != (uint *)0x0)" (( "(") (binary_expression "puVar17 != (uint *)0x0" (identifier "puVar17") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0025ea00:\n        if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" (statement_identifier "LAB_0025ea00") (: ":") (if_statement "if (puStack_b4 != (uint *)puVar5[1]) {\n          (**(code **)(pcVar26 + 0x1d3d1c))();\n        }" (if "if") (parenthesized_expression "(puStack_b4 != (uint *)puVar5[1])" (( "(") (binary_expression "puStack_b4 != (uint *)puVar5[1]" (identifier "puStack_b4") (!= "!=") (cast_expression "(uint *)puVar5[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (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 (uVar4 == 0) {\n          trap(7);\n        }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (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 "puVar5[2] = uVar4;" (assignment_expression "puVar5[2] = uVar4" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "puVar5[1] = (uint)puVar7;" (assignment_expression "puVar5[1] = (uint)puVar7" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar7"))) (; ";")) (expression_statement "puVar6[7] = (uint)unaff_s5;" (assignment_expression "puVar6[7] = (uint)unaff_s5" (subscript_expression "puVar6[7]" (identifier "puVar6") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5"))) (; ";")) (expression_statement "puVar21 = puVar7 + (uint)unaff_s5 % uVar4;" (assignment_expression "puVar21 = puVar7 + (uint)unaff_s5 % uVar4" (identifier "puVar21") (= "=") (binary_expression "puVar7 + (uint)unaff_s5 % uVar4" (identifier "puVar7") (+ "+") (binary_expression "(uint)unaff_s5 % uVar4" (cast_expression "(uint)unaff_s5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s5")) (% "%") (identifier "uVar4")))) (; ";")) (expression_statement "puVar8 = (uint *)*puVar21;" (assignment_expression "puVar8 = (uint *)*puVar21" (identifier "puVar8") (= "=") (cast_expression "(uint *)*puVar21" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (; ";")) (if_statement "if (puVar8 == (uint *)0x0) goto LAB_0025ea84;" (if "if") (parenthesized_expression "(puVar8 == (uint *)0x0)" (( "(") (binary_expression "puVar8 == (uint *)0x0" (identifier "puVar8") (== "==") (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        *puVar6 = *puVar8;" (statement_identifier "LAB_0025ea48") (: ":") (expression_statement "*puVar6 = *puVar8;" (assignment_expression "*puVar6 = *puVar8" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";"))) (expression_statement "*(uint **)*puVar21 = puVar6;" (assignment_expression "*(uint **)*puVar21 = puVar6" (pointer_expression "*(uint **)*puVar21" (* "*") (cast_expression "(uint **)*puVar21" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar21" (* "*") (identifier "puVar21")))) (= "=") (identifier "puVar6")) (; ";")) (} "}")))) (expression_statement "puVar5[4] = puVar5[4] + 1;" (assignment_expression "puVar5[4] = puVar5[4] + 1" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "puVar5[4] + 1" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "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: (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: (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: (primitive_type) 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: (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: (primitive_type) 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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (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))) 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 (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_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))))) (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) 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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (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 (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;
  int *piVar2;
  Task *pTVar3;
  uint uVar4;
  uint *puVar5;
  uint *puVar6;
  uint *puVar7;
  uint *puVar8;
  undefined4 *puVar9;
  uint uVar10;
  int *piVar11;
  int *piVar12;
  undefined4 *puVar13;
  int iVar14;
  int iVar15;
  uint uVar16;
  uint *puVar17;
  int *piVar18;
  int unaff_s1;
  int iVar19;
  int *unaff_s2;
  undefined4 *puVar20;
  int *unaff_s3;
  uint *puVar21;
  Workqueue *unaff_s4;
  uint uVar22;
  int *unaff_s5;
  undefined *puVar23;
  uint *puVar24;
  code *pcVar25;
  code *pcVar26;
  undefined4 uVar27;
  uint *puStack_d8;
  uint uStack_d4;
  uint uStack_d0;
  uint uStack_cc;
  uint uStack_c8;
  uint uStack_c4;
  char acStack_c0 [4];
  uint uStack_bc;
  uint *puStack_b8;
  uint *puStack_b4;
  code *pcStack_b0;
  uint uStack_ac;
  int iStack_a8;
  undefined1 *puStack_a4;
  undefined1 **ppuStack_a0;
  uint *puStack_9c;
  Workqueue *pWStack_98;
  int *piStack_94;
  undefined *puStack_90;
  undefined1 *puStack_68;
  int iStack_64;
  undefined1 auStack_60 [20];
  int *piStack_4c;
  int iStack_48;
  int *piStack_44;
  int *piStack_40;
  code *pcStack_3c;
  
  puVar24 = (uint *)PTR__environ_00433318;
  if (*(int *)(PTR__environ_00433318 + -0x2830) == 0) {
    unaff_s1 = (*(code *)PTR_operator_new_0043233c)(0x20);
                    /* try { // try from 0025e278 to 0025e27f has its CatchHandler @ 0025e3b4 */
    (*(code *)PTR_Lock_00434030)(unaff_s1);
    puVar23 = PTR_s_alize_xindex_004323b4;
    piVar18 = (int *)*param_3;
    unaff_s3 = param_1 + 1;
    piVar11 = (int *)param_3[1];
    cVar1 = *(char *)(param_1 + 1);
    *(int *)(unaff_s1 + 4) = unaff_s1 + 0x1c;
    *(undefined4 *)(unaff_s1 + 0x10) = 0;
    uVar27 = *(undefined4 *)(puVar23 + -0x636c);
    *(undefined4 *)(unaff_s1 + 8) = 1;
    *(undefined4 *)(unaff_s1 + 0x1c) = 0;
    *(undefined4 *)(unaff_s1 + 0xc) = 0;
    *(undefined4 *)(unaff_s1 + 0x18) = 0;
    *(int *)((int)puVar24 + -0x2830) = unaff_s1;
    *param_1 = (int)param_3;
    *(undefined4 *)(unaff_s1 + 0x14) = uVar27;
    unaff_s2 = param_3;
    unaff_s4 = param_2;
    unaff_s5 = param_1;
    if (cVar1 != '\0') {
      param_1[3] = 0;
      piVar2 = (int *)(param_1[2] + ((int)piVar11 - (int)piVar18 >> 2) * -0x49249249);
      param_1[2] = (int)piVar2;
      if (piVar18 != piVar11) {
        puVar23 = PTR_PTR__wfilebuf_004321f8 + -0x6d48;
        do {
          iVar19 = *piVar18;
          piVar18 = piVar18 + 7;
          pTVar3 = (Task *)(*(code *)PTR_operator_new_0043233c)(0x2c);
          *(undefined4 *)(pTVar3 + 4) = 0;
          *(Task **)(pTVar3 + 8) = pTVar3 + 0x10;
          *(undefined4 *)(pTVar3 + 0xc) = 0;
          pTVar3[0x10] = (Task)0x0;
          pTVar3[0x20] = (Task)0x0;
          *(undefined **)pTVar3 = puVar23;
          *(int *)(pTVar3 + 0x24) = iVar19;
          *(int **)(pTVar3 + 0x28) = unaff_s3;
          gold::Workqueue::queue(param_2,pTVar3);
          piVar2 = (int *)param_3[1];
        } while (piVar2 != piVar18);
      }
      return piVar2;
    }
  }
  else {
    (*(code *)PTR_do_gold_unreachable_004323c4)
              (PTR_DAT_0043226c + 0x12f0,0xe7,PTR_DAT_0043226c + 0x13a8);
  }
  piVar18 = (int *)(PTR_LAB_0043220c + 0x48a0);
  (*(code *)PTR_do_gold_unreachable_004323c4)(piVar18,0x97,PTR_DAT_0043226c + 0x1398);
                    /* catch() { ... } // from try @ 0025e278 with catch @ 0025e3b4 */
  iVar19 = 0x20;
  (*(code *)PTR_operator_delete_004323c0)(unaff_s1);
  pcVar26 = FUN_0025e3dc;
  piVar11 = piVar18;
  puVar23 = PTR_FUN_00432258;
  (*(code *)PTR_FUN_00432258)();
  puStack_68 = auStack_60;
  piStack_4c = piVar18;
  iStack_48 = unaff_s1;
  piStack_44 = unaff_s2;
  piStack_40 = unaff_s3;
  pcStack_3c = pcVar26;
  (**(code **)(puVar23 + 0x1d40ac))
            (&puStack_68,*(int *)(puVar23 + 0x1d3e90) + 0x1308,*(int *)(puVar23 + 0x1d3e90) + 0x1317
             ,0);
  puVar21 = *(uint **)(iVar19 + 0x24);
  uVar4 = (**(code **)(puVar23 + 0x1d83a0))(puVar21);
  if (uVar4 <= 0x7fffffffU - iStack_64) {
    piVar18 = (int *)(**(code **)(puVar23 + 0x1d4874))(&puStack_68,puVar21,uVar4);
    piVar2 = piVar18 + 2;
    *piVar11 = (int)(piVar11 + 2);
    if ((int *)*piVar18 == piVar2) {
      iVar15 = piVar18[3];
      iVar14 = piVar18[4];
      iVar19 = piVar18[5];
      piVar11[2] = *piVar2;
      piVar11[3] = iVar15;
      piVar11[4] = iVar14;
      piVar11[5] = iVar19;
    }
    else {
      *piVar11 = *piVar18;
      piVar11[2] = piVar18[2];
    }
    piVar11[1] = piVar18[1];
    *piVar18 = (int)piVar2;
    piVar18[1] = 0;
    *(undefined1 *)(piVar18 + 2) = 0;
    if (puStack_68 != auStack_60) {
      (**(code **)(puVar23 + 0x1d3eb0))();
    }
    return piVar11;
  }
  iVar19 = *(int *)(puVar23 + 0x1d3fd8) + -0x6240;
  (**(code **)(puVar23 + 0x1d40a4))();
  if (puStack_68 != auStack_60) {
    (**(code **)(puVar23 + 0x1d3eb0))(puStack_68);
  }
  pcVar26 = *(code **)(puVar23 + 0x1d3e7c);
  iVar14 = iVar19;
  (*pcVar26)();
  puVar20 = *(undefined4 **)(*(int *)(pcVar26 + 0x1d4da8) + -0x2830);
  uVar22 = *(uint *)(iVar14 + 0x24);
  puStack_90 = (undefined *)puVar24;
  iStack_a8 = iVar19;
  puStack_a4 = auStack_60;
  ppuStack_a0 = &puStack_68;
  puStack_9c = puVar21;
  pWStack_98 = unaff_s4;
  piStack_94 = unaff_s5;
  (**(code **)(*(int *)*puVar20 + 8))((int *)*puVar20);
  uVar4 = puVar20[2];
  if (uVar4 == 0) {
    trap(7);
  }
  piVar11 = *(int **)(puVar20[1] + (uVar22 % uVar4) * 4);
  if (piVar11 != (int *)0x0) {
    uVar10 = ((int *)*piVar11)[1];
    piVar18 = (int *)*piVar11;
    do {
      piVar2 = piVar18;
      if (uVar22 == uVar10) {
        pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);
        if ((*piVar11 != 0) && (*(int *)(*piVar11 + 8) != 0)) {
          piVar11 = (int *)(*pcVar25)();
          return piVar11;
        }
        goto LAB_0025e698;
      }
      piVar18 = (int *)*piVar2;
      if (piVar18 == (int *)0x0) break;
      uVar10 = piVar18[1];
      if (uVar4 == 0) {
        trap(7);
      }
      piVar11 = piVar2;
    } while (uVar22 % uVar4 == uVar10 % uVar4);
  }
  pcVar25 = *(code **)(*(int *)*puVar20 + 0xc);
LAB_0025e698:
  (*pcVar25)();
  puVar5 = (uint *)(**(code **)(pcVar26 + 0x1d3dcc))(0x20);
  puStack_b4 = puVar5 + 7;
  *puVar5 = uVar22;
  iVar19 = *(int *)(pcVar26 + 0x1d3e44);
  pcVar25 = *(code **)(pcVar26 + 0x1d8260);
  puVar5[1] = (uint)puStack_b4;
  uVar4 = *(uint *)(iVar19 + -0x636c);
  puVar5[4] = 0;
  puVar5[7] = 0;
  puVar5[2] = 1;
  puVar5[3] = 0;
  puVar5[6] = 0;
  puVar5[5] = uVar4;
  iVar19 = (*pcVar25)(uVar22);
  if (iVar19 == 0) {
    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d8394))();
    if (*piVar11 == 2) goto LAB_0025e80c;
    if (*piVar11 == 0x14) goto LAB_0025e80c;
    puVar21 = (uint *)(**(code **)(pcVar26 + 0x1d82a8))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1318);
    uVar4 = *puVar5;
    uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*piVar11);
    (**(code **)(pcVar26 + 0x1d4814))(puVar21,uVar4,uVar27);
    piVar11 = (int *)*puVar20;
    goto LAB_0025e810;
  }
  puStack_b8 = puVar5 + 3;
  puVar24 = &uStack_d0;
  pcStack_b0 = (code *)(*(int *)(pcVar26 + 0x1d71a4) + -0x1e58);
LAB_0025e720:
  iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);
  if (iVar14 == 0) goto LAB_0025e7f8;
  do {
    iVar14 = iVar14 + 0x13;
    puStack_d8 = puVar24;
    iVar15 = (**(code **)(pcVar26 + 0x1d820c))(iVar14);
    (**(code **)(pcVar26 + 0x1d3f18))(&puStack_d8,iVar14,iVar14 + iVar15,0);
    unaff_s5 = (int *)(**(code **)(pcVar26 + 0x1d4af0))(puStack_d8,uStack_d4,0xc70f6907);
    if (puVar5[2] == 0) {
      trap(7);
    }
    puVar21 = (uint *)((uint)unaff_s5 % puVar5[2]);
    piVar11 = (int *)(**(code **)(pcVar26 + 0x1d4f88))(puVar5 + 1,puVar21,&puStack_d8,unaff_s5);
    if (piVar11 == (int *)0x0) goto LAB_0025e8e0;
    pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);
    if (*piVar11 == 0) goto LAB_0025e8e4;
    while( true ) {
      if (puStack_d8 == puVar24) goto LAB_0025e720;
      (**(code **)(pcVar26 + 0x1d3d1c))();
      iVar14 = (**(code **)(pcVar26 + 0x1d822c))(iVar19);
      if (iVar14 != 0) break;
LAB_0025e7f8:
      iVar14 = (**(code **)(pcVar26 + 0x1d81c8))(iVar19);
      if (iVar14 == 0) {
LAB_0025e80c:
        piVar11 = (int *)*puVar20;
      }
      else {
        uVar4 = *puVar5;
        puVar9 = (undefined4 *)(**(code **)(pcVar26 + 0x1d8394))();
        uVar27 = (**(code **)(pcVar26 + 0x1d8374))(*puVar9);
        (**(code **)(pcVar26 + 0x1d3eec))(*(int *)(pcVar26 + 0x1d3cfc) + 0x1338,uVar4,uVar27);
        piVar11 = (int *)*puVar20;
      }
LAB_0025e810:
      (**(code **)(*piVar11 + 8))(piVar11);
      piVar11 = (int *)(**(code **)(pcVar26 + 0x1d3dcc))(0xc);
      uVar4 = puVar20[2];
      iVar14 = puVar20[1];
      if (uVar4 == 0) {
        trap(7);
      }
      piVar11[2] = (int)puVar5;
      *piVar11 = 0;
      piVar11[1] = uVar22;
      puVar5 = (uint *)((uVar22 % uVar4) * 4);
      piVar18 = *(int **)(iVar14 + (int)puVar5);
      if (piVar18 == (int *)0x0) {
LAB_0025eb6c:
        (**(code **)(pcVar26 + 0x1d45c0))(&puStack_d8,puVar20 + 5,uVar4,puVar20[4],1);
        uVar4 = uStack_d4;
        if (puStack_d8._0_1_ == '\0') {
          puVar9 = (undefined4 *)puVar20[1];
        }
        else {
          if (uStack_d4 == 1) {
            puVar9 = puVar20 + 7;
            puVar20[7] = 0;
          }
          else {
            puVar9 = (undefined4 *)FUN_0025e1a8(uStack_d4);
          }
          piVar18 = (int *)puVar20[3];
          puVar20[3] = 0;
          if (piVar18 != (int *)0x0) {
            uVar10 = 0;
            do {
              if (uVar4 == 0) {
                trap(7);
              }
              uVar16 = (uint)piVar18[1] % uVar4;
              puVar13 = puVar9 + uVar16;
              piVar2 = (int *)*piVar18;
              if ((int *)*puVar13 == (int *)0x0) {
                *piVar18 = puVar20[3];
                puVar20[3] = piVar18;
                *puVar13 = puVar20 + 3;
                if (*piVar18 != 0) {
                  puVar9[uVar10] = piVar18;
                }
              }
              else {
                *piVar18 = *(int *)*puVar13;
                *(int **)*puVar13 = piVar18;
                uVar16 = uVar10;
              }
              piVar18 = piVar2;
              uVar10 = uVar16;
            } while (piVar2 != (int *)0x0);
          }
          if ((undefined4 *)puVar20[1] != puVar20 + 7) {
            (**(code **)(pcVar26 + 0x1d3d1c))();
          }
          if (uVar4 == 0) {
            trap(7);
          }
          puVar20[2] = uVar4;
          puVar20[1] = puVar9;
          puVar5 = (uint *)(uVar22 % uVar4 << 2);
        }
        if (*(int **)((int)puVar9 + (int)puVar5) == (int *)0x0) {
          *piVar11 = puVar20[3];
          puVar20[3] = piVar11;
          if (*piVar11 == 0) {
            iVar19 = puVar20[1];
          }
          else {
            iVar19 = puVar20[1];
            if (puVar20[2] == 0) {
              trap(7);
            }
            *(int **)(iVar19 + (*(uint *)(*piVar11 + 4) % (uint)puVar20[2]) * 4) = piVar11;
          }
          *(undefined4 **)(iVar19 + (int)puVar5) = puVar20 + 3;
        }
        else {
          *piVar11 = **(int **)((int)puVar9 + (int)puVar5);
          **(undefined4 **)(puVar20[1] + (int)puVar5) = piVar11;
        }
        iVar19 = *(int *)*puVar20;
        puVar20[4] = puVar20[4] + 1;
        piVar11 = (int *)(**(code **)(iVar19 + 0xc))((int *)*puVar20);
        return piVar11;
      }
      uVar10 = ((int *)*piVar18)[1];
      piVar2 = (int *)*piVar18;
      while (piVar12 = piVar2, uVar22 != uVar10) {
        piVar2 = (int *)*piVar12;
        if (piVar2 == (int *)0x0) goto LAB_0025eb6c;
        uVar10 = piVar2[1];
        if (uVar4 == 0) {
          trap(7);
        }
        piVar18 = piVar12;
        if (uVar22 % uVar4 != uVar10 % uVar4) goto LAB_0025eb6c;
      }
      if (*piVar18 == 0) goto LAB_0025eb6c;
      (**(code **)(pcVar26 + 0x1d3d1c))(piVar11);
      (**(code **)(pcVar26 + 0x1d3e54))
                (*(int *)(pcVar26 + 0x1d3cfc) + 0x12f0,0x97,*(int *)(pcVar26 + 0x1d3cfc) + 0x1394);
LAB_0025e8e0:
      pcVar25 = *(code **)(pcVar26 + 0x1d3dcc);
LAB_0025e8e4:
      puVar6 = (uint *)(*pcVar25)(0x20);
      uVar4 = uStack_d4;
      *puVar6 = 0;
      puVar6[1] = (uint)(puVar6 + 3);
      if (puStack_d8 == puVar24) {
        puVar6[3] = uStack_d0;
        puVar6[4] = uStack_cc;
        puVar6[5] = uStack_c8;
        puVar6[6] = uStack_c4;
      }
      else {
        puVar6[1] = (uint)puStack_d8;
        puVar6[3] = uStack_d0;
      }
      uStack_ac = puVar5[6];
      uVar16 = puVar5[4];
      uVar10 = puVar5[2];
      pcVar25 = *(code **)(pcVar26 + 0x1d45c0);
      uStack_d4 = 0;
      puVar6[2] = uVar4;
      uStack_d0 = uStack_d0 & 0xffffff;
      puStack_d8 = puVar24;
      (*pcVar25)(acStack_c0,puVar5 + 5,uVar10,uVar16,1);
      uVar4 = uStack_bc;
      if (acStack_c0[0] == '\0') {
        puVar7 = (uint *)puVar5[1];
        puVar6[7] = (uint)unaff_s5;
        puVar21 = puVar7 + (int)puVar21;
        puVar8 = (uint *)*puVar21;
        if (puVar8 != (uint *)0x0) goto LAB_0025ea48;
LAB_0025ea84:
        uVar4 = puVar5[3];
        puVar5[3] = (uint)puVar6;
        *puVar6 = uVar4;
        if (uVar4 != 0) {
          if (puVar5[2] == 0) {
            trap(7);
          }
          puVar7[*(uint *)(uVar4 + 0x1c) % puVar5[2]] = (uint)puVar6;
        }
        *puVar21 = (uint)puStack_b8;
      }
      else {
        if (uStack_bc == 1) {
          puVar5[7] = 0;
          puVar7 = puStack_b4;
        }
        else {
          puVar7 = (uint *)(*pcStack_b0)(uStack_bc);
        }
        puVar21 = (uint *)puVar5[3];
        puVar5[3] = 0;
        if (puVar21 != (uint *)0x0) {
          uVar10 = 0;
          do {
            while( true ) {
              if (uVar4 == 0) {
                trap(7);
              }
              uVar16 = puVar21[7] % uVar4;
              puVar8 = puVar7 + uVar16;
              puVar17 = (uint *)*puVar21;
              if ((uint *)*puVar8 == (uint *)0x0) break;
              *puVar21 = *(uint *)*puVar8;
              *(uint **)*puVar8 = puVar21;
              uVar16 = uVar10;
LAB_0025e9a0:
              puVar21 = puVar17;
              uVar10 = uVar16;
              if (puVar17 == (uint *)0x0) goto LAB_0025ea00;
            }
            *puVar21 = puVar5[3];
            puVar5[3] = (uint)puVar21;
            *puVar8 = (uint)puStack_b8;
            if (*puVar21 == 0) goto LAB_0025e9a0;
            puVar7[uVar10] = (uint)puVar21;
            puVar21 = puVar17;
            uVar10 = uVar16;
          } while (puVar17 != (uint *)0x0);
        }
LAB_0025ea00:
        if (puStack_b4 != (uint *)puVar5[1]) {
          (**(code **)(pcVar26 + 0x1d3d1c))();
        }
        if (uVar4 == 0) {
          trap(7);
        }
        puVar5[2] = uVar4;
        puVar5[1] = (uint)puVar7;
        puVar6[7] = (uint)unaff_s5;
        puVar21 = puVar7 + (uint)unaff_s5 % uVar4;
        puVar8 = (uint *)*puVar21;
        if (puVar8 == (uint *)0x0) goto LAB_0025ea84;
LAB_0025ea48:
        *puVar6 = *puVar8;
        *(uint **)*puVar21 = puVar6;
      }
      puVar5[4] = puVar5[4] + 1;
    }
  } while( true );
}

